クラスを呼び出してバックグラウンドワーカーを開始するボタンがあります。バックグラウンドワーカーの進行状況を変更して更新するUI(ボタンがあります)に進行状況を報告することを除いて、すべてが正常に機能します。私はたくさんのことを試みましたが、成功しませんでした。変更された進行状況は、単に発火するだけではありません。
バックグラウンドワーカーを開始するためのコードは次のとおりです。
var backgroundWorker = new BackgroundWorker();
ListBackgroundWorkerRunning.Add(path, backgroundWorker);
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.DoWork += (sender, e) =>
{
_fileUploadRepository.UploadFiles(path);
var directoryConfiguration = new DirectoryConfiguration();
directoryConfiguration.UpdateProgressBarHandler(10);
//BackgroundWorker worker = sender as BackgroundWorker;
//directoryConfiguration.ProgressChanged += directoryConfiguration_ProgressChanged;
};
//backgroundWorker.ProgressChanged += backgroundWorker_ProgressChanged;
backgroundWorker.RunWorkerCompleted += (sender, e) =>
{
_crudOperation.UpdateDatabaseWithCrawlFinishedNotification(path);
RemoveCrawler(path);
InitializeWatcher(path);
};
backgroundWorker.RunWorkerAsync();
これがprogress_changedイベントです:
//void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
//{
// var directoryConfiguration = new DirectoryConfiguration();
// directoryConfiguration.Invoke(new Action(() => directoryConfiguration.progressBar1.Value = e.ProgressPercentage));
//}