【发布时间】:2012-04-04 19:29:25
【问题描述】:
我的主应用程序线程产生 2 个线程,我在主线程中捕获 SIGINT 以很好地退出它们。
在 linux 上,我使用的是signal.pause(),它运行良好。
在 Windows 上实现 signal.pause() 的最佳方式是什么?
我丑陋的解决方案是:
my_queue.get(True, averylongtime)
并在我的信号处理程序中的 my_queue 中放入一些东西。请注意,如果我不指定超时,则不会捕获 SIGINT。但我想知道是否有更好的解决方案。
谢谢
【问题讨论】:
-
你是如何生成 SIGINT 的?如果它只是来自键盘的
+C,那么您可以捕获 KeyboardInterrupt。否则可能会引发 Win32 事件。