我的问题是这样的:是否有可能使用ISynchronizeInvoke.BeginInvoke()重载一个线程?
我有两个线程,我的UI线程和一个工作线程。我的工作线程运行在一个由窗体实例化的独立类中,该窗体将其自身作为ISynchronizeInvoke
传递给工作类,然后在该接口上使用Invoke
来调用它的事件,这些事件向UI提供状态更新以供显示。这很奇妙。
我注意到我的后台线程似乎运行速度很慢,所以我将电话改为Invoke
为BeginInvoke
,认为“我只是提供进度更新,它不需要完全同步,没有伤害完成“,除了现在我越来越奇怪的进度更新。我的进度条更新,但标签的文本没有,如果我改变到另一个窗口,并尝试返回,它的行为就像UI线程被锁定,所以我想知道如果我的进度调用(这发生很通常)会重载UI线程以至于它从不处理消息。这是可能的,还是有其他工作在这里?