gpt4 book ai didi

c# - 正在从后台线程更新的 Winforms UI 线程编码 BusinessObject 列表

转载 作者:行者123 更新时间:2023-11-30 18:10:45 26 4
gpt4 key购买 nike

首先,我知道有很多问题和解决方案来纠正后台线程以外的线程的线程编码。我发现的所有问题和解决方案都集中在列表或业务对象本身引发事件的场景Windows 窗体可以订阅更新,然后正确地将更新编码到主 UI 线程。

在我的例子中,业务对象列表由单独层中的后台线程更新。我希望这个列表绑定(bind)到主线程上的一个控件。我真的需要从业务对象列表向 UI 公开事件,以便可以正确编码更新吗?我能否不悄悄地更新业务对象列表并将这些更新传播到 UI,而不必以某种方式向 UI 公开列表更改事件?

编辑:

我的问题本质上是这样的:更改的 INotifyProperty 在属性更改后触发。绑定(bind)到实现此接口(interface)的对象的控件将尝试更新,如果导致事件触发的线程不是 UI 线程,我们就会遇到问题。所以我们需要通知 UI 线程我们要更新,以便可以线程安全的方式处理更新,这意味着后台线程更新对象不能简单地处理它的业务,它必须请求权限才能更新对象或者要求 UI 代表它对对象进行更改。这就是我所说的 UI 被拉入处理对象更新的意思。

最佳答案

我在 this old usenet post 上发布了一个选项(包括示例) - 寻找 ThreadedBindingList(不要 panic - 大部分代码都在设置示例;列表类非常小);这可能会有所帮助,但在我看来,您最好稍后再进行 UI 更新...

(不要错过线程下方的更新)

关于c# - 正在从后台线程更新的 Winforms UI 线程编码 BusinessObject 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com