如何知道 Process.Start() 创建的进程何时关闭
本文关键字:进程 何时关 创建 何知道 Process Start | 更新日期: 2023-09-27 18:36:28
我正在使用这个:
var proc2 = Process.Start(Path.GetFullPath(filename));
proc2.Exited += (_, __) =>
{
MessageBox.Show("closed!");
};
但是我关上窗户,没有MessageBox.Show("closed!");
.如何解决这个问题?
您需要将Process.EnableRaisingEvents
设置为 true。
您忘了将EnableRaisingEvents
设置为 true。
此外,您可能希望使用构造函数创建一个 Process,设置 ProcessStartInfo,然后在注册后调用 Start 以侦听事件。 否则,您会遇到争用条件,即进程在您注册以侦听事件之前退出(我知道不太可能,但在数学上并非不可能)。
var process = new Process();
process.StartInfo = new ProcessStartInfo(Path.GetFullPath(filename));
process.EnableRaisingEvents = true;
process.Exited += (a, b) =>
{
MessageBox.Show("closed!");
};
process.Start();
你忘记了启用事件
Process p;
p = Process.Start("cmd.exe");
p.EnableRaisingEvents = true;
p.Exited += (sender, ea) =>
{
System.Windows.Forms.MessageBox.Show("Cmd was Exited");
};
您可以在proc2.WaitForExit()
后触发警报