1

複数のプロセスを開始するアプリケーションがあります。しかし、すべてのプロセスが終了する前に終了イベントをキャッチしていないようです。すべてが完了するのを待たずに同じことを行うにはどうすればよいですか?

これが私のコードです:

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);
}

ブラジル

4

0 に答える 0