文章出處

在學習Windows Phone 程序開發時經常會使用到Dispatcher.BeginInvoke()的編程方法,可能許多初學者并不熟悉Dispatcher.BeginInvoke的使用方法以及為什么在WP編程中會經常使用到這個方法,下面就粗淺介紹下Dispatcher.BeginInvoke()的使用方法。

在WP編程中,我們經常要做的一件事就是更新UI,而其UI部分都在單一的線程下執行的。就是說,WP的開發編程中絕大部分的UI設置更新都是在UI線程中進行的,如果你在非UI線程中要更新UI的狀態,那么將會拋出一個異常UnauthorizedAccessException(無效的跨線程操作)。那么我們應該如果去更新UI狀態呢。

是的,Dispatcher.BeginInvoke()派上用場了。在WP編程中,任何的UI線程上的處理都是通過Dispatcher來傳送與處理的,如果想要更新UI狀態,那么就可以使用Dispatcher的BeginInvoke()方法來傳送,其使用方法也非常簡單,只需將其中更新UI狀態的代碼放入Dispatcher.BeginInvoke()方法中即可,這其實是一個在處理多線程時的一個小技巧。

例如:

 1 private void TestBeginInvoke(Panel p)
 2 
 3 {
 4 
 5     p.Dispatcher.BeginInvoke(() => {
 6 
 7         p.Children.Clear();
 8 
 9         p.Children.Add(
10 
11             new TextBlock { Text = "Added by Dispatcher." });
12 
13     });
14 
15 }

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()