C# 在后台线程上调用Application.DoEvents()会产生什么影响?
正如问题所问:Application.DoEvents()在后台线程上调用时做什么 为了提供一些上下文,我正在回顾一个为C#中的.NET CF编写的相当复杂的解决方案(不是我自己编写的)。我之所以回顾它,是因为它有一些内在的问题,我被要求调查 一个相当有趣的消息是,该应用程序在启动时创建一个长时间运行的后台线程,该线程进入一个定时循环。它最终在每次循环迭代时调用Application.DoEvents() 我不太清楚这会有什么影响-它会刷新应用程序主线程上的消息队列吗?或者它在调用它的线程上刷新消息队列(即使后台线程没有要刷新的队列) 几乎可以肯定,这是某些无法解释的应用程序行为的原因。application.DoEvents()处理当前消息队列中的所有Windows消息,即创建窗口的每个线程一条消息。所以,如果你在“后台线程”上调用它,除非你在该线程上创建了一个窗口,否则它什么都不会做 中被接受的答案解决了您的问题。C# 在后台线程上调用Application.DoEvents()会产生什么影响?,c#,multithreading,.net-cf-3.5,C#,Multithreading,.net Cf 3.5,正如问题所问:Application.DoEvents()在后台线程上调用时做什么 为了提供一些上下文,我正在回顾一个为C#中的.NET CF编写的相当复杂的解决方案(不是我自己编写的)。我之所以回顾它,是因为它有一些内在的问题,我被要求调查 一个相当有趣的消息是,该应用程序在启动时创建一个长时间运行的后台线程,该线程进入一个定时循环。它最终在每次循环迭代时调用Application.DoEvents() 我不太清楚这会有什么影响-它会刷新应用程序主线程上的消息队列吗?或者它在调用它的线程上刷新