gpt4 book ai didi

python win32com "PumpWaitingMessages()"处理

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:55 56 4
gpt4 key购买 nike

我使用 Python 3.4。我有一个程序,通过 win32com 包提供与 Windows 中的 COM 模块的集成。为了处理来自该模块的消息,我在无限 while 循环中使用了 pythoncom.PumpWaitingMessages() 方法。但是 python 无限循环使 100% CPU 核心负载(如 Windows 任务管理器中所示)。问题:

  1. Windows 任务管理器是真正的“工作”还是特性?

  2. 如何避免这种情况。也许通过使用 asyncio 模块或其他方式?

  3. 是否可以在另一个线程中处理消息或使用 pythoncom 异步处理消息?

最佳答案

PumpWaitingMessage 将处理消息并在没有更多消息要处理时立即返回。

您可以在循环中调用它,但您应该在下一次循环迭代之前调用 MsgWaitForMultipleObjectsMsgWaitForMultipleObjectsEx

避免在初始循环迭代之前调用这些函数,因为它们会阻塞,您将没有机会查看是否满足某些条件,无论是否有消息要处理。或者,为这些函数提供合理的超时。

关于python win32com "PumpWaitingMessages()"处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28352419/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com