2010-05-25 53 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