C#中两个进程之间的同步

时间:2014-06-16 08:13:37

标签: c# wpf

我有一个WPF应用程序,按下按钮我启动2个进程(P1和P2),两个都在命令propmt上运行,我能够将两个进程的输出重定向到我的WPF应用程序中的TextBox。 (读取输出异步)。

但是输出正在变得混合,因为我没有为P1和P2做WaitForProcess(我不希望UI挂起)。 我希望P2在P1结束后开始。

因为我正在检查过程P1是否存在,然后只启动过程P2。 但我的用户界面却悬而未决,一切都没有出现。

Windows任务栏中的

进程P1正在运行,但文本框未更新。

1 个答案:

答案 0 :(得分:1)

初始化Process对象时,可以为Process.Exited event注册处理程序。正如您可能想象的那样,当相关流程终止时会引发此事件,因此您可以从那里开始第二个Process

Process process = new Process();
process.EnableRaisingEvents = true;
...
process.Exited += Process_Exited;

...

private void Process_Exited(object sender, EventArgs e)
{
    // First Process has completed - start second process here
}