如何检测进程何时不存在
How to detect when a process doesnt exist anymore?
试图找到一种在进程不存在时得到通知的方法,而不是不断检查类似"if process exist"
的东西。
我有哪些选择?
您可以使用OpenProcess
打开一个进程,并在该进程上使用WaitForSingleObject
。一旦目标进程不存在,函数WaitForSingleObject
将立即返回。但是,如果您希望在目标进程不存在时立即通知您的程序,则必须使一个线程处于恒定等待状态。
另一种选择是调用RegisterWaitForSingleObject
,它将自动为您创建一个线程(或使用线程池中的现有线程(,它将等待进程,并在目标进程不存在时调用您指定的回调函数。
相关文章:
- boost::进程间消息队列引发错误
- 何时在引用或唯一指针上使用移动语义
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 何时提供默认参数作为模板参数
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- C++-明确何时以及如何调用析构函数
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 在以唯一ptr为值的C++映射中,动态内存何时会被销毁
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 何时应通过引用传递矢量参数而不是按值传递矢量参数?
- 终止 QProcess 不会终止子进程
- 使用信号检测子进程何时终止的最佳方法是什么?
- boost::p rocess 如何知道进程何时退出"gracefully or not"?
- 如何检测Poco子进程何时崩溃
- 检测窗口何时被来自相同或不同进程的另一个窗口重叠
- 何时应该终止MPI子进程