文章出處
文章列表
在學習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 }
文章列表
全站熱搜