Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menangkap STDOUT daripada Proses Kanak-kanak dalam .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!