我需要多次运行一个进程。每次我调用实现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