我的問題是這樣的:是否有可能使用ISynchronizeInvoke.BeginInvoke()重載一個線程?
我有兩個線程,我的UI線程和一個工作線程。我的工作線程運行在一個由窗體實例化的獨立類中,該窗體將其自身作爲ISynchronizeInvoke
傳遞給工作類,然後在該接口上使用Invoke
來調用它的事件,這些事件向UI提供狀態更新以供顯示。這很奇妙。
我注意到我的後臺線程似乎運行速度很慢,所以我將電話改爲Invoke
爲BeginInvoke
,認爲「我只是提供進度更新,它不需要完全同步,沒有傷害完成「,除了現在我越來越奇怪的進度更新。我的進度條更新,但標籤的文本沒有,如果我改變到另一個窗口,並嘗試返回,它的行爲就像UI線程被鎖定,所以我想知道如果我的進度調用(這發生很通常)會重載UI線程以至於它從不處理消息。這是可能的,還是有其他工作在這裏?