簡體   English   中英

Deployment.Current.Dispatcher.BeginInvoke(()=> {...})有什么用?

[英]What is the use of Deployment.Current.Dispatcher.BeginInvoke( ()=> {…} )?

我在一些代碼中看到過這種Deployment.Current.Dispatcher.BeginInvoke(()=> {...})格式。它曾經在后台做過一些工作嗎?它的一般用途是什么?

不,它不是在后台線程中工作 - 它是在UI線程上工作。 所以它通常從后台線程調用 ,以便操作UI,這只能在UI線程上完成。

lambda表達式的主體是您要在UI線程中執行的代碼。

當更新UI的代碼從UI線程以外的線程執行時,會發生無效的跨線程訪問異常。

調度程序允許您將一些代碼從另一個線程傳遞到UI線程。

我在這篇文章中提出的項目,以及其他概念。

WindowsClient,HttpWebRequest和Windows Phone 7上的UI線程

你需要使用Deployment.Current。 當您發現自己在非UI工作線程中工作時(在不從DependencyObject繼承的上下文中)並且您需要更新UI,SilverLight應用程序中的Dispatcher

暫無
暫無

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

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