次の状況でバックグラウンドワーカーをキャンセルする方法を見つけようとしています:
ある Winform には、基本的にサービスから大量のデータを取得するバックグラウンド ワーカーがあります。この操作には 1 秒から 5 分かかります。それで、私がしたことは、別の Winform を作成し、それにマーキー プログレス バーを貼り付けることでした。
私がやりたいのは、バックグラウンドワーカーをキャンセルするプログレスバーを備えたそのWinformにキャンセルボタンを追加することです。
私の現在のコードは次のように設定されています:
this.backgroundWorker1.RunWorkerAsync();
pb = new frmProgressbar();
pb.Show();
while (this.backgroundWorker1.IsBusy)
{
Application.DoEvents();
}
pb.Dispose();
そのため、バックグラウンドワーカーが作業している間にプログレスバーを表示し、その後プログレスバーフォームを破棄するため、これは正常に機能します。
しかし、バックグラウンド ワーカーを強制終了するキャンセルを返す frmProgressbar に [キャンセル] ボタンを配置して、ユーザーが操作をキャンセルできるようにする方法を見つける必要があります。助言がありますか?