Visual Studio 環境で、デバッグ中にプログラムに 2 つの異なる終了動作があることに気付きました。プログラムの実行中に [デバッグの停止] ボタンを押すと、右上の赤い X をクリックして実際にフォームを閉じたときとは異なる動作が発生し、デバッグも停止しました。私はいつも彼らが同じことをしたと思っていましたが、私のプログラムでは、異なる終了条件を経験しています. デバッグを終了するこれら2つの方法に本当に違いがあるかどうか、誰か教えてください。
1041 次
2 に答える
4
確かに、大きな違い。ウィンドウの [閉じる] ボタンをクリックすると、アプリの制御されたシャットダウンが開始され、FormClosing イベントが発生します。アプリのメイン ウィンドウの場合、Application.Run() が Main() メソッドに返され、Main() メソッドが返され、UI スレッドが終了します。バックグラウンド以外のスレッドが残っていない場合、CLR は制御された方法でシャットダウンし、残りのすべてのファイナライザーを実行し、AppDomain をアンロードしてプロセスを終了します。
デバッガーの [Stop Debugging] コマンドを使用すると、即座に失礼なプロセスが中止されます。 プログラムでも CLR でも、コードはまったく実行されません。バム!以上。
于 2013-08-05T20:22:26.710 に答える