以前に、未停止のbackgroundWorkerが存在する場合に、プログラムを終了させようとしても終了しない状況が発生する事について説明しました。
参考:プログラム中でApplication.Exit();を実行しても、プログラムが終了しない
今回は、もしこの状態に陥った時、どのbackgroundWorkerオブジェクトが動き続けているかを調べる方法について説明します。
ちなみに今回説明している内容はVisualStudio2010 Professionalエディションで確認しています。Expressだとひょっとしたらメニューが無いかもしれません…
Ctrl + Alt +Breakキーを押し、プログラムの実行を一時中断させます。
VisualStudioのツールバーを右クリックし、”デバッグの場所”を選択します。
表示されたバーのスレッドより、”ワーカースレッド”と記載されたものを選択します。
これで、問題を起こしているスレッドにアクセスできます。
その後、メソッドの呼び出し履歴を見ると、このスレッドの呼び出し元(backgroundWorkerの呼び元クラス名)が分かります。
二章で、マルチスレッドアプリケーションの設計に関わる知識について紹介されています。
↓
C# .NETアプリケーション開発 徹底攻略 C# 3.0/.NET Framework 3.5対応
関連記事
コメントを残す