2009-07-25 13 views
1

我目前有我的項目運行兩個單獨的線程(一個用於MFC操作,如視圖/窗體視圖,應用程序窗口等,另一個用於其無限while循環主功能)。但是,對於某些情況,當我以調試模式運行我的程序時,我注意到其中一個線程的退出狀態是1(換句話說,它向操作系統返回了一個非零數字)。在Visual Studio 2005中運行應用程序時,找出哪個線程負責返回值是最簡單的方法,以便我可以解決發生的問題?提前致謝。MFC:對哪個線程負責導致崩潰的故障排除

結合史蒂夫Gilham的建議:

調查該線程負責通過查看間諜++錯誤後,我有牽制到hdlUninitDevice()從洛文特獵鷹SDK調用的單行負責這種返回消息。從此調用返回失敗狀態不會彈出錯誤消息。但是,我不知道這是否是一個重要的協議,對於在更大的背景下處理是至關重要的。聽取更多建議是很好的。謝謝。

回答

0

下級線程如何終止?我首先想到的是,如果主線程退出時它以非優雅方式關閉,那可能會導致非零狀態。至少,如果你可以解耦兩個線程完成時的時間,它可能有助於判斷哪個正在返回哪個狀態。

+0

下級線程被暫停,然後終止,然後父線程自行終止。但是,有時候我注意到在我不知道的情況下創建了其他的下級線程(可能是使用定時器創建的)。如何根據其win32線程號告訴哪個下級線程正在終止非零狀態? – stanigator 2009-07-25 22:48:21

+0

我不知道,也不是通過谷歌顯而易見;但MSDN關於終止進程的文章可能是解決更廣泛問題的起點。 http://msdn.microsoft.com/en-us/library/ms686722%28VS.85%29.aspx – 2009-07-25 23:11:49

+0

謝謝。我會看看這篇文章。 – stanigator 2009-07-25 23:41:43