我有一个WPF应用程序,按下按钮我启动2个进程(P1和P2),两个都在命令propmt上运行,我能够将两个进程的输出重定向到我的WPF应用程序中的TextBox。 (读取输出异步)。
但是输出正在变得混合,因为我没有为P1和P2做WaitForProcess(我不希望UI挂起)。 我希望P2在P1结束后开始。
因为我正在检查过程P1是否存在,然后只启动过程P2。 但我的用户界面却悬而未决,一切都没有出现。
Windows任务栏中的进程P1正在运行,但文本框未更新。
答案 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
}