當我嘗試使用Process類運行tasklist.exe並將RedirectStandardOutput設置爲true時,該過程永不結束。爲什麼TaskList.exe在重定向標準輸出時永不結束?
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
RunProcess("tasklist.exe");
}
private static void RunProcess(string command)
{
var process = new Process()
{
StartInfo =
{
FileName = command,
RedirectStandardOutput = true,
UseShellExecute = false
}
};
process.Start();
process.WaitForExit();
}
}
如果我將RedirectStandardOutput設置爲false,則過程結束!
爲什麼tasklist.exe進程永不結束?我正在使用Windows 7和.net框架4.5.2。
我發現當我強制關閉tasklist.exe時,每次都有4096字節寫入標準輸出!是否有某種字符緩衝區需要增加尺寸?
你不讀輸出.. – Blorgbeard
爲什麼是怎麼回事? – LVBen
我可以在WaitForExit之後輕鬆添加這兩行,但它永遠不會被執行:var response = process.StandardOutput.ReadToEnd(); Console.WriteLine(response); – LVBen