Heim > Backend-Entwicklung > C++ > Wie kann man Konsolenanwendungsausgabe in .NET effizient erfassen?

Wie kann man Konsolenanwendungsausgabe in .NET effizient erfassen?

Barbara Streisand
Freigeben: 2025-01-25 03:31:36
Original
317 Leute haben es durchsucht

How to Efficiently Capture Console Application Output in .NET?

<.> Erfassen Sie die Prozessausgabe im .NET

Starten Sie einen Konsolenantragsvorgang und erfassen Sie die Ausgabe in .NET.

Diese Methode verwendet das Ereignisverarbeitungsprogramm , um die empfangene Ausgabe zur Zeichenfolge hinzuzufügen. Wir nennen

, um die Ausgabe asynchroner Lesart zu starten. Standardmäßig blockiert , bis der untergeordnete Prozess ausgeht, wodurch die Ausgabe vollständig erfasst werden kann.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

string retMessage = string.Empty;

ProcessStartInfo startInfo = new ProcessStartInfo();

Process p = new Process();

 

startInfo.CreateNoWindow = true;

startInfo.RedirectStandardOutput = true;

startInfo.RedirectStandardInput = true;

 

startInfo.UseShellExecute = false;

startInfo.Arguments = command;

startInfo.FileName = exec;

 

p.StartInfo = startInfo;

p.Start();

 

p.OutputDataReceived += (sender, args) => retMessage += args.Data;

 

// 开始异步输出读取。

p.BeginOutputReadLine();

 

p.WaitForExit();

 

return retMessage;

Nach dem Login kopieren

Eine andere Methode zum Lesen der Ausgabe ist: OutputDataReceived BeginOutputReadLine() WaitForExit() Diese einfachere Methode reicht in vielen Fällen aus, aber es ist zu beachten, dass sie alle Ausgaben gleichzeitig liest. Die Verwendung von Ereignisverarbeitungsverfahren kann eine asynchrone Ausgangserfassung liefern.

Das obige ist der detaillierte Inhalt vonWie kann man Konsolenanwendungsausgabe in .NET effizient erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage