【问题标题】:Has anyone written a thread-safe BindingList<T>?有没有人写过线程安全的 BindingList<T>?
【发布时间】:2008-09-29 13:11:40
【问题描述】:

我目前在多个线程上修改 IBindingList 时遇到异常。在我自己编写之前,有人有线程安全版本吗?

【问题讨论】:

    标签: .net multithreading thread-safety bindinglist


    【解决方案1】:

    我想你会发现这是一项非常困难的任务。更简单的方法是使用lock 防止多线程访问:

    void AddItemToList(object o)
    {
        lock(myBindingList)
        {
            myBindingList.Add(o);
        }
    }
    

    查看lock statement docs 了解更多信息。

    【讨论】:

    • 不应该是锁(_mySyncObject)吗?
    • 这还不够。数据绑定不会尊重您的锁定。当绑定列表发生变化时,UI 会立即尝试更新,你会得到一个跨线程错误。
    【解决方案2】:

    才发现这个帖子...你的意思是like this

    【讨论】:

    • 有点浅的实现。那么所有其他需要同步的无数方法(尤其是:GetEnumerator())呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2023-03-14
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多