Menangkap Output Standard Proses Kanak-kanak dengan Cekap dalam .NET
Mengambil keluaran standard (STDOUT) daripada proses anak dalam .NET boleh menjadi rumit. Artikel ini memperincikan penyelesaian berdasarkan pengalaman pembangun.
Pembangun pada mulanya menggunakan panggilan balik terdorong peristiwa untuk menangkap output daripada aplikasi konsol yang dilancarkan sebagai proses kanak-kanak. Pendekatan ini, bagaimanapun, membawa kepada kebuntuan, menghalang acara OutputDataReceived
daripada menembak.
Penyelesaian melibatkan penukaran kepada bacaan langsung daripada strim StandardOutput
proses:
<code class="language-csharp">return p.StandardOutput.ReadToEnd();</code>
Kaedah ini menangkap semua output proses dengan berkesan.
Sebagai alternatif, kaedah BeginOutputReadLine()
menawarkan pendekatan dipacu peristiwa:
<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>
Teknik ini menyediakan kaedah yang boleh dipercayai untuk menangkap STDOUT daripada aplikasi konsol, meningkatkan interaksi dan pemantauan proses kanak-kanak.
Atas ialah kandungan terperinci Bagaimanakah saya dapat menangkap output standard dari proses kanak -kanak di .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!