Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menangkap STDOUT daripada Proses Kanak-kanak dalam .NET?

Bagaimana untuk Menangkap STDOUT daripada Proses Kanak-kanak dalam .NET?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-25 03:46:16508semak imbas

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

Mulakan subproses dalam .NET dan tangkap output standard

.NET menyediakan cara untuk mencipta subproses dan mengubah hala keluaran standardnya untuk menangkap output. Kelas Process menyediakan kaedah untuk pemijahan dan memanipulasi proses.

Kod asal dan hadnya

Kod yang diberikan cuba menyelesaikan masalah ini tetapi menghadapi beberapa masalah. Memandangkan kaedah WaitForExit() menyekat urutan, pengendali acara OutputDataReceived tidak akan dipanggil.

Kaedah penambahbaikan

Kod yang dipertingkatkan menyediakan penyelesaian yang berfungsi:

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

Kod ini menggunakan kaedah BeginOutputReadLine() untuk mula mendengar data output daripada proses anak. OutputDataReceived Pengendali acara kini dipanggil dengan betul dan output yang ditangkap boleh diakses dalam pengendali acara.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap STDOUT daripada Proses Kanak-kanak dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn