2013-03-27 58 views
4

我正在寫一個C#應用程序使用Windows窗體和Visual Studio 2010專業版。該機器正在使用Windows 7 Enterprise,並且是32位。雖然我認爲它不相關,但我正在使用遠程桌面連接(虛擬機)。Visual Studio和進程凍結時發生異常(我認爲)C#

問題是,當在窗體的Load方法中生成異常時,VS和程序都會凍結/掛起(實際上,我甚至無法顯示文件夾或轉到桌面),只是在我殺死了我正在調試的應用程序的進程。

這發生在調試模式(F5)而不是非調試模式(ctrl + F5)。我搜索了很多關於這個,這是x64機器的一個已知問題。這就是爲什麼我發現它真的很奇怪,正如很多人報告64位計算機,但在x86架構中一樣。

現在我通過運行代碼,我想調試另一個函數,除了加載一個,但在未來它可能會有問題。

在此先感謝您的任何輸入。

------------------------------編輯--------------- ------------------------------

我剛剛注意到我甚至無法在Load方法中使用斷點進行調試(而不是顯示中斷點,它只是掛起...)。之前沒有人遇到過這個問題? :/

+1

每個人都會這樣說:讓我們看到一些代碼。 – gunr2171 2013-03-27 18:40:38

+0

我不確定代碼是否真的與此相關,也可能是系統設置問題。 ** 1。**知道這是否發生在* any *和所有異常(例如,如果一個簡單程序'static void Main(){throw new NotImplementedException();}'表現出相同的行爲,該操作系統的非常具體的異常/程序** 2。**你可以偶然地在x86硬件上設置一個x64虛擬機...? – stakx 2013-03-27 18:45:23

+0

@stakx,似乎這個問題可能是代碼問題(無限循環,壞代碼等)或環境問題,如果沒有證據,很難說出其中的一個或另一個 – gunr2171 2013-03-27 18:49:24

回答

2

那麼,大家,發現了什麼問題。

問題在於我的表單屬性'TopMost'設置爲true。奇怪的是,當發生異常時,我甚至無法最小化我的應用程序,什麼模擬了掛斷的情況,而發生的事情只是我的表單正在等待VS的回答(顯示異常,但它是可見的)。就像在'加載'方法中一樣,表單保持凍結狀態,讓我無法選擇殺死它。

感謝您的建議,我想最終我錯了,它確實是在代碼:)(雖然我仍然認爲發生了一些奇怪的事情,因爲我甚至無法將我的應用程序最小化) 。

(您可以關閉此線程或任何你做的事情時,就解決了肯定的:P)

+0

有人更好的拿起電話。因爲我打電話給它! – gunr2171 2013-03-28 15:57:52

+0

@ gunr2171 Heheh不完全,但以某種方式你是對的:)。我想,即使我發佈了代碼,沒有人會發現TopMost屬性,而且因爲它在自動生成的代碼中。無論如何,這種行爲是否正常?我不應該能夠,至少,最小化我的應用程序? – viper 2013-03-28 16:28:24

+0

是的,你是對的,雖然我最初的想法是「正確的」,但你說得很難確定錯誤來自哪裏。至於預期的行爲,我不確定。 Visual Studio擁有一個exe文件,它將在不同的線程上運行你的代碼。過去我沒有嘗試過。 – gunr2171 2013-03-28 16:32:38

相關問題