2012-05-17 63 views

回答

0

不,它們不是相同的線程。

如果您在除UIThread以外的任何線程上運行,則可以通過Dispatcher訪問UI線程。

要檢查您是否在UI上運行,可以使用CheckAccess方法。
要在UI線程上觸發操作,您可以使用BeginInvoke

+0

感謝馬特的快速回復,我知道我們不能訪問'UIElement'而不是UIThread。如果我們想要我們必須使用Dispatcher的beginInvoke技術,但我的問題是「我已經註冊了一個鼠標移動事件在畫布上」和事件回調鼠標事件我正在訪問Textblock,Canvas沒有BeginInvoke,它不會拋出任何異常如何?如果兩者都是不同的線程。 –

+1

響應於UI事件的@Anieeh事件在UI線程上觸發。這就是爲什麼你可以從這些處理程序訪問UI的原因。參考發件人可能會很棘手,否則。 –

0

使用需要在uithread中註冊一個事件並調用Deployment.Current.Dispatcher.BeginInvoke(()=> {YourEventName();} );