ソースコードを分析するプログラムがあります。ディレクトリを再帰的に調べてすべてのプロジェクトを見つけ、次にプロジェクトを再帰的に調べてすべてのソース コードを見つけることができます。
ユーザーがコードの解析を停止できるキャンセル プロセス ボタンを作成したいと考えています。バックグラウンド ワーカーでコードの解析を実行します。キャンセルイベントを監視できるようにしたい。
問題は、コードを編集してそのアイテムをチェックし、GUI に戻るようにする方法を考え出すことです。解析プロセスは、いくつかの方法で深くなります。
はるかに小さなプロセスで、キャンセルが要求されたかどうかを示す bool を持つスレッドセーフなシングルトンを正常に使用し、実行中のループを停止します。
このキャンセル リクエストをコードに組み込む最良の方法は何でしょうか?
編集: これは、John Saunders の回答に触発されたアイデアです。
Cancel Singleton の変更を監視する処理スレッドでバックグラウンド スレッドを実行し、そのプロセスから例外をスローするとどうなりますか? これは良い習慣のように思えますか? これは意図したとおりに機能しません
EDIT 2: ジョン・サンダースの答えは今のところ最良のようです。シングルトンが今のところ真の場合、私は自分の例外をスローします。他の解決策が提案されているかどうかを確認するのを待ちます