2010-05-25 57 views
0

我用了新的工作話題網頁refernce調用我的應用程序如下:多線程WPF

Thread callRunner = new Thread(delegate() 
    { _mediator.IncomingCallDetails(phoneNumber); }); 
callRunner.Start() ; 

的_mediator調用Web refernce和重放給調用者在事件如下:

void IncomingCallComplited(IncomingCallEventArg args) 
{ 
    Caller = args.Caller; 
    Lodgers = args.Lodgers; 
    PreviousMissions = args.PreviousMissions; 
} 

調用者,寄宿人和PreviousMissions是綁定到GUI元素的對象的屬性,因爲現在綁定工作正常,並且我可以在屏幕中看到來自Web引用的值我的問題是我應該在事件中使用Dispatcher還是在任何其他階段?如果我能做到,請解釋爲什麼? 謝謝
Eran

回答

0

實際上,綁定系統負責爲你,所以你不需要顯式編組調用的UI線程。然而,這種行爲沒有記錄(除非我錯過了它),所以我不確定你應該依賴它...

另外,請注意,儘管PropertyChanged事件通過綁定系統跨線程正確編組, CollectionChanged事件是而不是。因此,如果您將另一個線程的數據添加到綁定到UI的ObservableCollection,則需要撥打Dispatcher.Invoke。或者你可以使用這個custom ObservableCollection class,這會在UI線程上產生CollectionChanged事件

+0

謝謝Thomas, 這正是我需要知道的 – Eran 2010-05-25 09:43:00