Process
sınıfının aracılığı çalışan varsa, akarsuları yönlendirebilirsiniz. Stdout veya stderr'den senkronize veya senkronize olmayan şekilde okuyabilirsiniz. Yönlendirmeyi etkinleştirmek için, yönlendirmek istediğiniz akışlar için uygun yönlendirme özelliklerini true
olarak ayarlayın ve UseShellExecute
değerini false
olarak ayarlayın. Daha sonra süreci başlatabilir ve akışlardan okuyabilirsiniz. Ayrıca, giriş yönlendirmeli stdin'i de besleyebilirsiniz.
süreç eşzamanlı
var proc = new Process()
{
StartInfo = new ProcessStartInfo(@"SomeProcess.exe")
{
RedirectStandardOutput = true,
UseShellExecute = false,
}
};
if (!proc.Start())
{
// handle error
}
var stdout = proc.StandardOutput;
string line;
while ((line = stdout.ReadLine()) != null)
{
// process and print
Process(line);
Console.WriteLine(line);
}
ben [buradan] numunesi bulduk (http://msdn.microsoft.com/en-us/library/system. diagnostics.process% 28v = vs80% 29.aspx), hem stdout hem de stderr öğelerinin nasıl yardımcı olacağını gösterir. Ayrıca bkz. Http://cleancode.sourceforge.net/api/csharp/html/T_CleanCode_IO_ExecProcess.htm. –