我用Python 3.4
。我有一个程序,可以COM
按win32com
程序包与Windows中的模块集成。为了处理来自该模块的消息,我pythoncom.PumpWaitingMessages()
在无限while
循环中使用该方法。但是python无限循环会使CPU核心负载达到100%(如Windows任务管理器中所示)。问题:
Windows Task Manager是真正的“工作”还是独特功能?
如何避免这种情况。也许通过使用asyncio
模块或其他方式?
pythoncom
?PumpWaitingMessage
将处理消息并在没有更多消息可处理时立即返回。
您可以在一个循环中调用它,但是您应该在下一个循环迭代之前调用MsgWaitForMultipleObjects
或MsgWaitForMultipleObjectsEx
。
避免在初始循环迭代之前调用这些函数,因为它们会阻塞,并且您将没有机会查看是否满足某些条件是否有消息要处理。或者,为这些功能提供合理的超时。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句