首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python win32com "PumpWaitingMessages()“处理

python win32com "PumpWaitingMessages()“处理
EN

Stack Overflow用户
提问于 2015-02-05 19:29:39
回答 1查看 3.2K关注 0票数 2

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

  1. 它是真正的“工作”还是Windows任务管理器的特性?
  2. 怎样才能避免这种情况。也许通过使用asyncio模块或其他方式?
  3. 是否可以在另一个线程中或使用pythoncom异步处理消息?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-06 09:58:53

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28352419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档