使用os._exit(0)来停止pythoncom.PumpMessages()

时间:2011-06-28 07:02:25

标签: python multithreading exit

我在一个线程中运行pythoncom.PumpMessages()。该行将导致线程停止并等待事件。我无法发送WM_QUIT,需要发送WM_QUIT以阻止此行等待。现在我正在考虑使用os._exit(0)来停止整个程序。使用这种方法似乎也使我的代码更加优雅,因为我不需要各种线程来通知彼此,等等。我只是创建一个类似于此的方法,并从任何地方调用它:

def os_exit():
....saveDataAndCleanUp()
....os._exit(0)

我知道这是一个非常粗略的方法,我可能会丢失数据,并且会停止进程

  

不调用清理处理程序,刷新stdio缓冲区等(Python文档)

我将找出确保不会丢失数据的方法(在这个小程序中这很容易)。我现在担心的是我有使用pyHook的键盘和鼠标挂钩。是否会导致问题,即在流程停止之前它们不会被解开。我的程序只能在Windows XP +上运行。我的应用程序还有什么可以做的,这会导致Windows变得不稳定,速度慢或类似,或者Windows会为我处理清理工作吗?我的应用程序或多或少是一个标准的GUI应用程序,它不会写入注册表或以任何方式修改Windows。

0 个答案:

没有答案