在POSIX OS下,有信号API,允许发送信号进行处理以关闭它 有了杀戮,你可以用sigaction抓住它并做你需要的事情;
但是,Win32不是POSIX系统,所以:
我不是在谈论GUI,我在谈论应该很好地关闭的TCP / IP服务器。 不像Windows服务一样运行。
答案 0 :(得分:4)
MSDN Unix代码迁移指南 有一章关于Win32 code conversion and signal handling。
虽然微软已决定存档这篇精彩的指南,但它非常有用。
描述了三种方法:
本机信号
事件对象
消息
答案 1 :(得分:3)
来自MSDN的Windows电源管理可能会有所帮助。但它处理系统事件而不是每个进程。
对于某个流程,您可以使用WM_CLOSE
检测终止。您需要处理Windows消息。如果它是一个控制台应用程序,则需要安装一个控制处理程序;在MSDN上查看SetConsoleCtrlHandler
答案 2 :(得分:2)
您在首次创建的帖子中收到WM_QUIT
条消息。
当您不处理时,您的进程将被强行关闭。
所以只需在第一个线程中实现一个消息队列,它会查找WM_QUIT
消息