c# - 如何仅通过 Win32 API 实现 .NET Process.Exited 事件

标签 c# .net windows winapi process

在 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/

相关文章:

windows - 如何使用批处理文件查找Windows的安装位置

c# - 使用 c++/cli 和在 c# 中使用它的事件处理

c# - 使用 Wix 安装结束时添加多个复选框

c# - 谁能告诉我为什么这个 SQL 查询不起作用

c# - Checkbox Selected Index 被选中

c# - 无法在生产 ASP.net 站点上加载文件或程序集 Microsoft.SqlServer.SqlClrProvider,它在哪里?

.net - 使用 .NET 访问 Windows 7 功能

c# - 为什么在 .NET 中转换比反射快?

windows - GetIpAddrTable() 泄漏内存。如何解决?

c++ - 逐字符读取标准输入 C++