BindingList交叉线程错误

时间:2017-06-08 04:06:55

标签: c# multithreading

我在静态类中有一个静态BindingList,它在一个单独的线程上运行的UI和另一个类都添加/删除。这工作正常,直到我尝试将BindingList设置为DataGridView的数据源。现在当另一个线程试图在静态类

中调用此方法时
public static Chunk GetAndRemoveFirstChunk()
{
    Chunk chunk = Chunks.FirstOrDefault();
    Chunks.RemoveAt(0);

    return chunk;
}

它给出了这个错误:

  

System.InvalidOperationException:'跨线程操作无效:   控件''从其创建的线程以外的线程访问   '上。

在线:Chunks.RemoveAt(0);

只需添加Control.CheckForIllegalCrossThreadCalls = False; 到UI构造函数可以防止错误,但我认为这不是一个好的解决方案。

那么解决这个问题的好方法是什么?

0 个答案:

没有答案