使用C#和.Net终止/关闭特定的Windows应用程序时,是否可以获得通知?可以是Windows作业列表中侦听的任何应用程序。
您可以使用如下WaitForExit方法:
var process = Process.GetProcessById(process_id);
process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
这将导致正在执行的线程等待直到进程退出。
如果您不想阻塞线程,而是在进程退出时收到通知,则可以使用以下命令:
public static void NotifyOnProcessExits(Process process, Action action)
{
Task.Run(() => process.WaitForExit()).ContinueWith(t => action());
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
NotifyOnProcessExits(process, () => Console.WriteLine("Process has exited"));
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案将使一个线程池线程等待进程退出。您可能可以找到一个真正异步的更好的解决方案,但是我不确定。
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |