6
|
Piotr Czapla · 技术社区 · 15 年前 |
![]() |
1
1
定义“温柔”:) 我假设守护进程和GUI之间已经有了一个通信机制。只需引入一个“退出”命令并发送它。 如果您想杀死这个守护进程,即使它正忙着做某些事情(或被冻结),请使用TerminateProcess()。 要同时使用这两种方法,您可以发送“quit”,然后在进程句柄上等待一段时间(waitForSingleObject())。如果守护进程没有消失,比如说,5秒,那么终止它。 如果守护进程的主线程很容易长时间处于忙碌状态,那么让守护进程启动一个后台线程,该线程只会等待一个命名事件。要向该线程发出信号,请从GUI中按名称打开事件,然后引发它。这取决于守护进程在事件检测时要做什么,但至少它将是一个受控的关闭。 |
![]() |
2
1
窗户没有信号干扰你的思维。
有一些基础设施可以改变控制台应用程序处理(伪造的)sigterm和sigbreak的方式,主要是
值得注意的是,当Windows控制台应用程序接收到一个sigterm时,它所做的就是调用
我建议编写一些代码来向控制台应用程序发送信号,使其调用
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 4 月前 |
![]() |
CactusCake · if语句中应有分号 5 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |