2012-01-13 12 views
3

私はデバッグ中のアプリケーションを閉じるときにアプリケーションがデバッガを終了しないようにするプロジェクト内で何が変更されたのか把握しようとしています。私はまた、未処理の例外が未処理の例外ハンドラを呼び出さなくなったことに気付きました。関係があるかどうかはわかりません。アプリケーション終了時にVisual Studioがデバッガを終了しないのはなぜですか?

+0

どのような種類のアプリケーション(ウェブアプリケーション、共有ポイント、デスクトップアプリケーションなど)を教えてください。 –

答えて

6

すべてのスレッドが終了すると、デバッガは終了します。あなたはおそらく余分なスレッドを作成し、それを終了するために何もしなかったでしょう。

これは、未処理の例外がキャッチされないことを説明します。別のスレッドで発生した場合、メインスレッドでは表示されません。

2

ほとんどの場合、アプリケーションは実際には終了していません。あなたは他のスレッドを実行していますか?すべてのフォアグラウンドスレッドが終了するまで、アプリケーションはシャットダウンしません。

10

これはおそらく、バックグラウンドスレッドとして設定されていない他のスレッドが原因でアプリケーションが動作しているためです。バックグラウンドスレッドは、アプリケーションが実行するときに終了しますが、フォアグラウンドスレッドは、完了するまでアプリケーションの残りの部分を有効にします。次のように責任があるスレッド(複数可)をチェックするための

一つの方法は、デバッガである:

  • デバッガ
  • 「終了」のアプリで、あなたのアプリを実行します。
  • 待ちアプリは終了しましたが、「スレッド」は、このウィンドウ内の任意のスレッドのウィンドウ
  • ルックをデバッグする「一時停止」ボタン
  • 開く]を使用してアプリにはない
  • ブレークを持っている必要がありますまで。 1つ、またはいくつかのスレッドが表示される可能性があります。ウィンドウ内の情報によって、その内容を識別できるかどうかを確認してください。
  • "スタック"デバッグウィンドウを開き、 "スレッド"ウィンドウの各スレッドを順番にダブルクリックし、 "スタック"ウィンドウの内容を確認することもできます。スタックされたスレッドが何をしようとしているのかを確認することができます。
関連する問題