C# でデータベース呼び出しのプログレス バーとバックグラウンド ワーカーを実装するにはどうすればよいですか?
大量のデータを処理する方法がいくつかあります。これらは比較的長時間実行される操作であるため、進行状況バーを実装して、実際に何かが起こっていることをユーザーに知らせたいと考えています。
プログレス バーまたはステータス ストリップ ラベルを使用することを考えましたが、データベース処理メソッドが実行されるスレッドが 1 つの UI スレッドであるため、UI コントロールが更新されず、プログレス バーまたはステータス ストリップ ラベルが役に立たなくなります。
すでにいくつかの例を見てきましたが、それらは for ループを扱っています。
for(int i = 0; i < count; i++)
{
System.Threading.Thread.Sleep(70);
// ... do analysis ...
bgWorker.ReportProgress((100 * i) / count);
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = Math.Min(e.ProgressPercentage, 100);
}
より良い例を探しています。