Heim > Backend-Entwicklung > C++ > Wie erfasst man STDOUT von einem untergeordneten Prozess in .NET?

Wie erfasst man STDOUT von einem untergeordneten Prozess in .NET?

Mary-Kate Olsen
Freigeben: 2025-01-25 03:46:16
Original
492 Leute haben es durchsucht

How to Capture STDOUT from a Child Process in .NET?

Starten Sie einen Unterprozess in .NET und erfassen Sie die Standardausgabe

.NET bietet eine Möglichkeit, einen Unterprozess zu erstellen und seine Standardausgabe umzuleiten, um die Ausgabe zu erfassen. Die Klasse Process stellt Methoden zum Erzeugen und Bearbeiten von Prozessen bereit.

Originalcode und seine Einschränkungen

Der bereitgestellte Code versucht, dieses Problem zu lösen, stößt jedoch auf einige Probleme. Da die WaitForExit()-Methode den Thread blockiert, wird der OutputDataReceived-Ereignishandler nicht aufgerufen.

Verbesserungsmethoden

Der verbesserte Code bietet eine funktionierende Lösung:

<code class="language-csharp">process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += (sender, args) => Console.WriteLine("received output: {0}", args.Data);
process.Start();
process.BeginOutputReadLine();</code>
Nach dem Login kopieren

Dieser Code verwendet die Methode BeginOutputReadLine(), um mit der Überwachung auf Ausgabedaten vom untergeordneten Prozess zu beginnen. OutputDataReceived Event-Handler werden jetzt korrekt aufgerufen und auf die erfasste Ausgabe kann innerhalb des Event-Handlers zugegriffen werden.

Das obige ist der detaillierte Inhalt vonWie erfasst man STDOUT von einem untergeordneten Prozess in .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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