首先,我知道有很多问题和解决方案来纠正线程编组线程而不是后台线程。我发现的所有问题和解决方案都侧重于列表或业务对象自身引发Windows窗体可以订阅的事件,然后将更新正确编组到主UI线程的情况。Winforms UI线程编组Business Objects列表正在从后台线程更新
在我的情况下,业务对象列表正在由单独层中的后台线程更新。我希望这个列表绑定到主线程上的一个控件。我是否真的需要从业务对象列表中向用户界面公开事件,以便可以正确编组更新?我是否可以不静静地更新业务对象列表,并将这些更新传播到UI,而无需以某种方式将列表更改的事件暴露给UI?
编辑:
我的问题本质上是这样的:INotifyProperty改变被触发的属性已经改变了。绑定到实现此接口的对象的控件将尝试更新,如果引发事件触发的线程不是UI线程,则说明存在问题。所以我们需要通知我们想要更新的UI线程,以便可以以线程安全的方式处理更新,这意味着后台线程更新对象不能简单地执行它的业务,它必须要求权限更新对象或者要求UI代表它对对象进行更改。这就是我将UI拉入句柄对象更新的意思。
ThreadedBindingList看起来非常好。我想我会试一试。 – 2009-07-02 21:10:59
谢谢马克我会看看。 – AndyMM 2009-07-02 21:22:40