我有一个应用程序,我正在启动多个进程。但看起来我没有在所有进程完成之前捕捉到退出事件。我怎样才能做同样的事情,但不等待所有人完成?
这是我的代码:
foreach (var job in JobList.Where(x => x.Status == "Assigned"))
{
var worker1 = new Process();
worker1.StartInfo.UseShellExecute = false;
worker1.EnableRaisingEvents = true;
worker1.StartInfo.CreateNoWindow = true;
worker1.StartInfo.ErrorDialog = true;
worker1.StartInfo.Arguments = job.BtcFilePath;
worker1.StartInfo.FileName = job.ExeFilePath;
worker1.Exited += new EventHandler(Worker1Exited);
Processors.Add(worker1);
Processors.Last().Start();
Processors.Last().PriorityClass = ProcessPriorityClass.BelowNormal;
job.Status = "Progressing";
job.StartDate = worker1.StartTime;
_jobRespository.Save(job);
_state = State.CollectWorkerInformation;
}
...
void Worker1Exited(object sender, EventArgs e)
{
Interlocked.Increment(ref _readyToDoFinalize);
}
BR