バックグラウンド スレッドで 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;
}
ただし、問題があります。このDataSet内のデータテーブル(MyOtherDataTable.DefaultView)のDataViewにバインドされたコントロール(リストボックスなど)を含むUserControlsのスタック内にUserControl(ビュー)が開いています(私が試しているMyDataTableにもバインドされていません)埋める)。
その結果、別のコントロールを作成/BringToFront しようとすると、mscore.dll は恐ろしい死に方をします。cedevice.log と kdmp ファイルをスローします (Watson で分析しようとしました)。
これを回避する方法があるかどうか疑問に思っています。Form.Timer() でこの操作を実行しようとしましたが、結果は同じです。
「Fill」がフォアグラウンド スレッド内で実行されると、すべてが完全に機能します。
洞察を事前にありがとう....