在任何.NET 2.0 Winforms應用程序中,如果您在調試模式下運行代碼,並且您要麼打中斷點,要麼逐步進入代碼,並且想要查看被調試的應用程序的GUI,然後.NET不繪製應用程序屏幕。GUI在調試模式下不會重新繪製
例如,我有一個應用程序將一些消息寫入窗體上的TextBox。當我一步一步地調試代碼或者命中斷點時,我想查看TextBox中所有消息的記錄,但是如果按Alt-Tab從VS2005窗口切換到WinForms應用程序窗口,我所看到的是白色的。直到您在VS2005中的調試模式下按F5,表單纔會重新繪製。
這是什麼原因,並有沒有辦法克服這一點,而不會在代碼中引入任何線程?
當你進入你的進程時,所有線程都被掛起,所以沒有消息被泵送。你最好使用'Debug.WriteLine'來寫入調試輸出,並觀察那裏出現的內容而不必中斷。 – vcsjones 2013-03-06 18:25:46
當然,UI線程被調試器凍結了。窗口不會更新,直到您恢復運行。稍後,當UI線程再次空閒並獲取繪製請求時。這是設計。 – 2013-03-06 18:27:16
@vcsjones:是的,但不是在沒有通過消息泵的任何事情(比如調用OnPaint())時,在調試器中同步發生任何事情嗎? – 2013-03-06 18:29:07