2

我想在后台线程中更新 System.Data.DataTable:

m_MyThread = new Thread(UpdateIt) { 
                 isBackground = true, 
                 Priority = ThreadPriority.Normal };

public void UpdateIt()
{
    var adapter = new DataSetAdapter();
    adapter.Fill(MyDataTable);
    adapter.Dispose();

    m_MyThread = null;
}

但是,有一个问题。在 UserControls 堆栈中打开了一个 UserControl(视图),其中包含一个控件(如列表框),该控件绑定到此 DataSet 中数据表(MyOtherDataTable.DefaultView)上的 DataView(甚至未绑定到我正在尝试的 MyDataTable填写)。

结果,当尝试创建/BringToFront 另一个控件时,mscore.dll 死得很惨。它会抛出一个 cedevice.log 和 kdmp 文件(我曾尝试使用 Watson 对其进行分析)。

我想知道是否有办法解决这个问题。我什至尝试在 Form.Timer() 中执行此操作......但结果是一样的。

在前台线程中执行“填充”时,一切正常。

提前感谢您的任何见解....

4

0 回答 0