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

Wie kann man Konsolenanwendungsausgabe in .NET effizient erfassen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 03:31:36330Durchsuche

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.
<code class="language-csharp">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;</code>

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!

Stellungnahme:
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