たくさん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;
ありがとうございました。