我正在编写一个需要检测特定Windows进程终止的Windows服务(c ++)。
我想到了两种不同的方法来检测终止:
WaitForSingleObject(hHandle, INFINITE)
功能。明显的区别是WMI使用CALLBACK
函数。
这两种方法之间的其他主要差异,优点和缺点是什么?
谢谢!
答案 0 :(得分:0)
之前我编写过流程监控服务,并使用WMI监控流程。它允许您指定要监视的进程的“where”子句,并且如您所述,在发生某些事件时会调用您。
这样做的好处是你不必让一个线程块等待有问题的进程退出,而是可以运行你的WMI查询并在某些东西终止时等待回调。缺点是WMI API比Win32 API更加冗长。特别是你必须在WMI中将查询构建为字符串。