bgWorker.ReportProgress(x)を呼び出す代わりにProgressBarを自動インクリメントする方法は? (私はC#、WPFアプリケーションを使用しています)。
問題は、BackgroundWorker の作業内で、多くの作業を行う外部ライブラリを呼び出し、ライブラリの作業中に ProgressBar を更新したいことです。外部メソッドの実行に必要な時間を見積もることができます。
Timer を使用してみましたが、別のスレッドから bgWorker にアクセスできないため、うまくいきません。
つまり、次のようなものが必要です。
bgWorker.StartPercentage = 40;
bgWorker.FinishPercentage = 80;
bgWorker.ProgressBarUpdateTime = 20000; // estimated time needed to run external library
bgWorker.StartProgressBarUpdate();
ExternalLibrary.CallMethod(); // it takes about 20 sec to run this, bgWorker should
// update ProgressBar, while method is working
bgWorker.ReportProgress(80); // correct ProgressBar value
// do rest of work
どうやってやるの?