0
我在解密msdn文檔時遇到了一些麻煩。用WaitForExit調用流程類的正確順序是什麼?
我想調用進程類。如果進程類調用的進程退出,我希望我的代碼退出,但我希望將「StandardOutput」和「StandardError」寫入日誌文件。
如果進程類調用的進程掛起(並且不退出)我希望我的代碼超時並在特定的超時時間後關閉進程,但我仍然希望「StandardOutput」和「StandardError」爲寫入日誌文件。
所以我有這個作爲我的代碼:
using (Process p = new Process())
{
p.StartInfo.FileName = exePathArg;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.Arguments = argumentsArg;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
try
{
p.Start();
p.WaitForExit(timeToWaitForProcessToExit);
StreamReader standardOutput = p.StandardOutput;
StreamReader standardError = p.StandardError;
retDirects.Add("StandardOutput", standardOutput.ReadToEnd());
retDirects.Add("StandardError", standardError.ReadToEnd());
}
catch (Exception ex)
{
//nothing to do with this yet
}
finally
{
try
{
p.Kill();
}
catch { }
}
}
這是做事的正確方法嗎?
我不明白這個代碼:-(我不知道第8行的含義是什麼,這是一個匿名方法嗎? – Exitos 2011-04-12 10:08:16
那麼,你可以把它作爲一個普通的函數,只要把它拿出來。 – Homam 2011-04-12 11:50:36