在没有控制台或GUI的C ++ Windows程序中,我不想检测任务是否被取消/停止。 我怎样才能做到这一点?
感谢。
答案 0 :(得分:5)
你的"任务"跑,怎么停止?如果它刚刚被外界杀死/终止,那么你就无法在该过程中检测到它。
如果你的程序以常规方式退出(没有杀人,没有快速退出),你可以注册一个"清理"函数atexit(),将在exit()期间运行。
编辑:或者因为它是C ++,你可以使用自定义类型的全局变量并在析构函数中运行你的代码,这与atexit()基本相同。
答案 1 :(得分:3)
atexit()
将是C-portable方式。
如果您想使用特定于Windows的方式执行此操作,请参阅:Win32 API analog of sending/catching SIGTERM