c#中两个进程之间的同步
本文关键字:进程 之间 同步 两个 | 更新日期: 2023-09-27 18:08:50
我有一个WPF应用程序,在一个按钮上单击我启动2个进程(P1和P2),两者都在命令propmt上运行,我能够将两个进程的输出重定向到我的WPF应用程序中的文本框。(读取异步输出).
但是输出是混合的,因为我没有做WaitForProcess既不为P1也不为P2(我不希望UI得到挂起)。我想让P2在P1结束后开始
我检查进程P1是否存在,然后只启动进程P2。但我的UI挂起了,什么也没出现。
在Windows任务栏中的进程P1正在运行,但是文本框没有更新
初始化Process
对象时,可以为Process.Exited
事件注册处理程序。正如您所想象的,当相关进程终止时将引发此事件,因此您可以从那里启动第二个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
}