假设我有一个对象,我将其数据绑定到它,它实现了INotifyPropertyChanged接口,以便在值更改时告诉GUI...
如果我从与GUI线程不同的线程触发此操作,WPF会如何响应?
它是否确保从内存而非CPU缓存中获取属性的值?
更或者说,我正在询问WPF是否对包含属性的对象进行lock()操作...
假设我有一个对象,我将其数据绑定到它,它实现了INotifyPropertyChanged接口,以便在值更改时告诉GUI...
如果我从与GUI线程不同的线程触发此操作,WPF会如何响应?
它是否确保从内存而非CPU缓存中获取属性的值?
更或者说,我正在询问WPF是否对包含属性的对象进行lock()操作...
INotifyPropertyChanged
引发的值变化自动转换回到调度程序。(来源:http://blog.lab49.com/archives/1166)。
在任何线程上触发此事件...
INotifyCollectionChanged
引发的值变化不能可靠地转换到调度程序。(来源:http://csharplive.wordpress.com/2008/09/11/wpf-data-binding-observablecollection-cross-thread-binding-support/)。
如果您需要从不同的线程更新可观察集合,请遵循此链接中的建议。
textBox.Text="Foo"
),但数据绑定框架会有所帮助。 - Rob Fonseca-Ensor