2

たくさんObservableCollection<T>のアイテムを収納できる があります。データはバックグラウンド ワーカーを使用して非同期に受信されます (これは問題なく高速に動作します)。

しかし、膨大なコレクションを BackgroundWorkerCompletedTask でリストボックス/リストビュー (何でも) にバインドしようとすると、視覚化に時間がかかり、バインド/視覚化が完了するまで GUI がハングします。

パフォーマンスを改善する方法、またはその動作を防ぐ方法はありますか?

void bgGetData_DoWork(object sender, DoWorkEventArgs e)
{
    HugeData();
}

 void bgGetData_ProgressChanged(object sender, ProgressChangedEventArgs e)
 {
     devices.Add((ServiceReference1.Device)e.UserState);
 }

private void HugeData()
{
     foreach (ServiceReference1.Device dev in Proxy.client.GetHugeDate())
     {
         bgGetData.ReportProgress(0, dev);
     }
}

データは次のようにバインドされます。

myControl.ItemsSource = devices;

ありがとうございました。

4

1 に答える 1