簡體   English   中英

C#處理多個事件到主UI線程

[英]C# handle multiple events to main UI thread

我有一組在其自己的線程(Background worker)中定期更新的對象。 我的主窗體從所有這些對象訂閱了ValueChanged事件,並相應地更新了一些UI元素。

//pseudo code, this loops run on a timer  
foreach (obj myObj in myObjctList )
{
      myObj.Refresh()///// This raises an event if data changed 
}

如果myObj引發事件,此線程是否會阻塞,並且必須等到主UI用戶完成后才能繼續下一次Refresh()迭代?

如果是這樣,用任務/線程引發事件會更好,這樣就不會阻止更新線程嗎? 不確定它將如何工作/會有多少開銷,因為它將不斷產生新的任務

將您的代碼放在這之間更新您的用戶界面...

public delegate void Action(); // declare as global
      this.BeginInvoke((Action)(() =>
        {           
        // Your UI Updated code  
        }));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM