2

BackgroundWorker と C# を使用して、マルチステップ プロセスを長時間実行しています。次のステップに進む前に、各ステップが正常に完了したことを確認する必要があります。BackgroundWorker にエラーをキャッチさせ、[キャンセル] ボタンをクリックしてキャンセルするという多くの参照を見てきましたが、自分でエラーを確認してから、プロセスを適切に終了したいと考えています。誰かがキャンセル ボタンをクリックしたのと同じように扱うべきですか、それとも別の方法がありますか?

4

1 に答える 1

5

与えられたBackgroundWorkerbgWrk:

bgWrk.Cancel = true;エラーが発生するタイミングを設定できます。これを行うと、次の効果があります。

これにより、フラグが true に切り替わり、CancellationPendingバックグラウンド ワーカーを定期的にチェックしてから、適切にキャンセルできます。私の知る限り、それは「ベストプラクティス」と見なされます。

CancellationPendingフラグが設定されている場合は、コードが実行されないようにすることができ、基本的に呼び出し元からキャンセルされるのを待ちます。それはあなたのために優雅に働くはずです。

于 2010-03-16T13:57:35.437 に答える