在POSIX OS有信号的API,允许发送信号处理用kill将其关闭,您可以用的sigaction抓住它和你所需要的;
然而,Win32的不POSIX系统,所以:
- 我如何处理可能到来的关机事件,例如在“任务管理器”,“结束进程”?
- 什么是用于发送关机信号到Win32应用程序的标准API?
我说的不是GUI,我说的,应该是很好的关闭TCP / IP服务器。 这并不像Windows服务运行。
在POSIX OS有信号的API,允许发送信号处理用kill将其关闭,您可以用的sigaction抓住它和你所需要的;
然而,Win32的不POSIX系统,所以:
我说的不是GUI,我说的,应该是很好的关闭TCP / IP服务器。 这并不像Windows服务运行。
你得到一个WM_QUIT
你的第一个创建的线程上的消息。
当你不搞定,你的过程是强行关机。
因此,只要实现你的第一个线程消息队列,它看起来对WM_QUIT
消息
MSDNs UNIX代码迁移指南有一个约章的Win32代码转换和信号处理 。
虽然微软已经决定归档此辉煌的指导,这是非常有用的。
三种方法进行了说明:
本地信号
活动对象
消息
从可能是Windows电源管理MSDN将是有益的。 但它与系统的事件,而不是每个过程处理。
对于一个过程中,你将能够检测终止与WM_CLOSE
。 您将需要处理窗口消息。 如果它是一个控制台应用程序,你需要安装一个控制处理器; 看看SetConsoleCtrlHandler MSDN上