2013-08-05 108 views
0

在Visual Studio環境中,我在調試時在程序中注意到兩種不同的結束行爲。當我的程序仍在運行時,當按下「停止調試」按鈕時,我遇到了與通過單擊右上角的紅色X來關閉窗體時不同的行爲,該窗口也會停止調試。我一直認爲他們做了同樣的事情,但對於我的計劃,我正在經歷不同的結局條件。任何人都可以告訴我這兩種結束調試的方法是否真的有區別。停止調試與關閉窗體之間的區別

Stop Debugging Button

Closing the Form

回答

1

關閉形式將遵循任何或全部關閉事件。停止調試器會立即終止程序。

3

當然,區別。點擊窗口的「關閉」按鈕啓動應用程序的受控關閉,從FormClosing事件開始啓動。如果它是應用程序的主窗口,則Application.Run()將返回到Main()方法中,Main()方法返回並結束您的UI線程。如果沒有更多的非後臺線程,則CLR以受控方式關閉,運行所有剩餘的終結器,卸載AppDomain並結束進程。

使用調試器的停止調試命令是一個即時粗魯的過程中止。 代碼在所有運行中,既不在您的程序中,也不在CLR中。巴姆!過度。

相關問題