我對windows phone 7的一個懷疑EventDispatcher線程和UIThread都是相同的線程或不同的。如果兩者都是不同的線程,那麼我如何在委託方法或回調事件方法中訪問UIElement?windows phone 7 EventDispatcher線程和UIThread
請幫我找到答案。
我對windows phone 7的一個懷疑EventDispatcher線程和UIThread都是相同的線程或不同的。如果兩者都是不同的線程,那麼我如何在委託方法或回調事件方法中訪問UIElement?windows phone 7 EventDispatcher線程和UIThread
請幫我找到答案。
不,它們不是相同的線程。
如果您在除UIThread以外的任何線程上運行,則可以通過Dispatcher
訪問UI線程。
要檢查您是否在UI上運行,可以使用CheckAccess
方法。
要在UI線程上觸發操作,您可以使用BeginInvoke
。
使用需要在uithread中註冊一個事件並調用Deployment.Current.Dispatcher.BeginInvoke(()=> {YourEventName();} );
感謝馬特的快速回復,我知道我們不能訪問'UIElement'而不是UIThread。如果我們想要我們必須使用Dispatcher的beginInvoke技術,但我的問題是「我已經註冊了一個鼠標移動事件在畫布上」和事件回調鼠標事件我正在訪問Textblock,Canvas沒有BeginInvoke,它不會拋出任何異常如何?如果兩者都是不同的線程。 –
響應於UI事件的@Anieeh事件在UI線程上觸發。這就是爲什麼你可以從這些處理程序訪問UI的原因。參考發件人可能會很棘手,否則。 –