如果你实现了INotifyPropertyChanged,你可以在非UI线程中引发事件 - 我应该避免这种情况吗?为什么?
更新:这是关于wpf应用程序中的绑定。
答案 0 :(得分:4)
不,你不应该避免这种情况。 WPF代表您将PropertyChanged
事件封送到UI线程,但即使它没有,也可能不是组件的责任。
更新:我稍微误解了你的问题。出于某种原因,我认为你是专门询问与UI没有直接关系的背景组件。
如果您的组件是供UI直接使用的,那么编组UI线程的更改可能是有意义的,例如使用Windows窗体。但是,如果组件与UI无关,则通常没有意义,尽管如有必要,您可以使用当前SynchronizationContext
以不可知的方式切换到UI线程。
我在需要时使用WPF进行编组,因为正如我通常所说的那样,因为WPF为你做了,所以你不需要。但是,如果您正在更改集合,那么您将需要,因为这些更改不会自动编组。
答案 1 :(得分:0)
如果使用数据绑定,这可能会导致绑定框架遇到异常。例如,winforms绑定不期待这一点,并且通常会遇到麻烦。
这取决于框架;也许(我通常不知道)例如,WPF支持这个。