[英]Win32 API analog of sending/catching SIGTERM
在POSIX OS下,有一个信号API,它允许发送一个信号进行处理以使用kill来关闭它,你可以用sigaction捕获它并做你需要的事情;
但是,Win32不是POSIX系统,因此:
我不是在谈论GUI,我在谈论应该很好地关闭的TCP / IP服务器。 这不像Windows服务那样运行。
MSDN Unix代码迁移指南有一章介绍Win32代码转换和信号处理 。
虽然微软决定存档这个精彩的指南,但它非常有用。
描述了三种方法:
原生信号
事件对象
消息
可能是MSDN的 Windows电源管理会有所帮助。 但它处理系统事件而不是每个进程。
对于进程,您将能够使用WM_CLOSE
检测终止。 您需要处理Windows消息。 如果它是一个控制台应用程序,则需要安装一个控制处理程序; 看一下MSDN上的SetConsoleCtrlHandler
您在第一个创建的线程上收到WM_QUIT
消息。
如果不处理,则强制关闭进程。
因此,只需在第一个线程中实现一个消息队列,该队列将查找WM_QUIT
消息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.