WPF是否将NotifyPropertyChanges编组到调度程序?
如果我更新了一个属性,该属性在绑定控件的调度程序以外的线程上抛出NotifyPropertyChanged,那么该更新是否强制编组到此调度程序WPF是否将NotifyPropertyChanges编组到调度程序?,wpf,inotifypropertychanged,dispatcher,Wpf,Inotifypropertychanged,Dispatcher,如果我更新了一个属性,该属性在绑定控件的调度程序以外的线程上抛出NotifyPropertyChanged,那么该更新是否强制编组到此调度程序 BackgrounWorker.Run() => { blah.Blahness = 2; // notifies property changed on BW, is this marshalled to the dispatcher? } 是的,PropertyChanged事件会自动编组到UI调度程序,因此不需要使用Invoke来显式编组它
BackgrounWorker.Run() => { blah.Blahness = 2; // notifies property changed on BW, is this marshalled to the dispatcher? }
是的,
PropertyChanged
事件会自动编组到UI调度程序,因此不需要使用Invoke
来显式编组它
请注意,这仅适用于标量属性的更改通知(即
PropertyChanged
事件)。集合更改通知(INotifyCollectionChanged.CollectionChanged
event)不能以这种方式工作,必须在UI线程上手动引发它们。我写了一个自动完成的类,你可以找到它。谢谢你的回复。实际上,我更多的是从性能的角度来考虑。i、 e.根据您的回答,我认为如果您将大量属性更改手动编组到dispatcher,而不是隐式地为每个人编组,您将获得更好的性能。