簡體   English   中英

您如何從BackgroundWorker方法調用Silverlight中的GUI線程?

[英]How do you call the GUI thread in Silverlight from the BackgroundWorker method?

我正在使用BackgroundWorker線程在Silverlight 4中的GUI線程之外進行一些工作。我想從后台線程更新GUI上下文中的小部件,但已從Microsoft文檔中閱讀了有關這樣做的警告。 我知道從一個線程到另一個線程的通信會引發異常,因為只有GUI線程可以更新窗口小部件,但為此沒有提供BeginInvoke:

// BackgroundWorker thread code...

Widget.Dispatcher.BeginInvoke(() => Status.Text = "Hello");

但是,我的工作程序代碼中得到了一些不可預測的結果。

與GUI線程交叉通信的正確方法是什么? 是否通過將結果集合從RunWorkerCompleted方法中傳遞出來?

謝謝,

史考特

您不會直接調用GUI代碼。

您必須觸發UI線程訂閱的事件。 然后,它將進行編組以安全地更新UI。

關於此有很多問題(和答案)。 請參閱右側欄中的一些“相關”問題。

暫無
暫無

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

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