2010-05-11 174 views
0

我有一個應用程序(ABC),我開發它作爲一個Windows應用程序(.exe)。它本身是一個很大的應用程序,涉及很多DLL。WinForms應用程序掛起

但是,現在有一個要求,這個應用程序(ABC)是一個更大的應用程序(XYZ)的一部分。因此,我必須將「ABC」的項目類型從Windows應用程序更改爲類庫,並更改幾行代碼。

我的問題是,自從我開始使用ABC作爲XYZ的一部分後,如果我在它上面執行任何操作10到15分鐘,應用程序就開始掛起......我在運行時沒有任何問題一個單獨的申請。

這可能發生的任何原因?

任何建議將非常感激......

感謝, 拉姆

+0

您是否嘗試過附加調試器並暫停應用程序以查看線程處於什麼狀態? – 2010-05-11 13:01:29

+0

調用堆棧告訴你什麼? – 2010-05-11 13:01:42

+0

謝謝codeka ...我很抱歉,但我不能完全明白你的建議...你能否詳細說明一下? – Ram 2010-05-11 13:03:04

回答

2

啓動XYZ在調試器。等待應用程序掛起,暫停調試器,並查看過程中的每個線程都忙於什麼。

這也可以幫助打開「的所有異常中斷」

+0

感謝羅布......我會盡力...... 但是有一件事: >>看看每一個在您的過程中的線程正在忙於<< 您能告訴我我該怎麼做嗎? – Ram 2010-05-11 13:08:14

+2

調試 - > Windows - >線程 – user7116 2010-05-11 13:23:26

+0

嗨, 我試着在調試器中離開應用程序......但是,當它處於調試模式(即,當我在VS中運行它)時,掛起永遠不會發生..但是,如果我將該應用程序安裝在我嘗試調試的同一臺機器上,應用程序掛起。 所以這就是我所做的。 我安裝了應用程序。 等待它掛起。 將我的調試器附加到掛起的應用程序。 打開「線程」窗口並打開「中斷」。 我可以看到列出的幾個線程。 執行箭頭指向一個線程。 這是否意味着這個線程是導致掛起的線程? 或者我進行了錯誤的方向。請教建議 – Ram 2010-05-12 15:49:35

0

您還可以使用remote debugging來調試應用程序,同時它在用戶的機器上運行。在你的開發機器上,你可以附加到用戶機器上的進程,然後執行一個調試中斷來查看線程正在做什麼。

+0

謝謝ShellShock ..我會試試這個... – Ram 2010-05-11 14:33:59