我需要多次運行一個進程。每次我調用實現Process
和ProcessStartInfo
中的對象的靜態方法時。 ProcessStartInfo
屬性已修改爲返回錯誤或輸出。是否可以調用Parallel.For
循環內的靜態方法?我找不到任何關於與此相關的線程安全的文檔。線程安全多進程
public static void Run(string item1, string item2, string item3, string item4)
{
var ProcInfo = new ProcessStartInfo(Program.exe,(item1+item2+item3+item4));
ProcInfo.CreateNoWindow = true;
ProcInfo.UseShellExecute = false;
ProcInfo.WorkingDirectory = Environment.CurrentDirectory;
ProcInfo.RedirectStandardError = true;
var process = Process.Start(ProcInfo);
process.WaitForExit();
string error = process.StandardError.ReadToEnd();
int exitCode = process.ExitCode;
Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
Console.WriteLine("ExitCode: " + exitCode, "ExecuteCommand");
process.Dispose();
}
請添加相關代碼 – nmat 2013-05-09 13:11:38
發佈您的代碼...不太可能有什麼阻止您調用它(儘管是否合理是另一個問題)。但是如果沒有看到代碼,就無法確定。 – 2013-05-09 13:12:46
你在說什麼'ProcessInfo'類? 'System.Diagnostics'中沒有這樣的事情。看看你的課程的文檔。 (例如,http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx)。在「線程安全」的底部,通常會說「任何公共靜態(Visual Basic中的Shared)成員都是線程安全的,任何實例成員都不能保證線程安全。 – 2013-05-09 13:26:46