在 C# 上,很容易检测到特定进程 ID 是否已退出。
Process p = Process.GetProcessById(pid);
p.Exited += new EventHandler(OnExited);
如果只用Win32 API 写出与此相同的操作,我该怎么办?
最佳答案
您执行此操作的方式与 .NET Process 类执行此操作的方式完全相同。使用 RegisterWaitForSingleObject()在进程句柄上。当句柄收到信号(即进程完成)或可选超时到期时,您的回调将运行。请记住,与 .NET 一样,回调在 theadpool 线程上运行,因此需要适当的同步。
关于c# - 如何仅通过 Win32 API 实现 .NET Process.Exited 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006468/