gpt4 book ai didi

c# - 在后台线程上调用Application.DoEvents()有什么作用?

转载 作者:行者123 更新时间:2023-12-03 12:52:20 25 4
gpt4 key购买 nike

正如问题所问:在后台线程上调用Application.DoEvents()会做什么?

为了提供一些背景信息,我正在审查一个用C#为.NET CF编写的(不是我自己写的)相当复杂的解决方案。我之所以进行审查,是因为它有一些固有的问题需要我调查。

一个相当有趣的花絮是,该应用程序在启动时会创建一个长时间运行的后台线程,该线程会进入定时循环。最终在每次循环迭代时调用Application.DoEvents()。

我不太清楚这会带来什么影响-它会刷新应用程序主线程上的消息队列吗?还是在被调用的线程上刷新消息队列(即使后台线程没有要刷新的队列)。

几乎可以肯定,这是某些无法解释的应用程序行为的原因。

最佳答案

Application.DoEvents()处理当前在消息队列中的所有Windows消息,每个已创建窗口的线程都处理一个。因此,如果您在“后台线程”上调用它,则除非您在该线程上创建了一个窗口,否则它将不会执行任何操作。

关于c# - 在后台线程上调用Application.DoEvents()有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528602/

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