[英]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.