2009-01-13 20 views
0

也許你可以幫我....NET - 如何獲取有關我的程序中的錯誤的更多信息?錯誤:「線程0x566967f6已退出代碼0(0x0)」

我正在寫一個Windows Mobile中的程序,它連接到郵件服務器並從POP3中檢索數據-服務器。我正在使用可從here獲得的第三方(免費)套接字。我使用VS 2008(在VB.NET中)和設備模擬器。

我可以連接沒有任何問題,並執行我的各種命令(如登錄,STAT,LIST,TOP)。但是,當我使用RETR命令下載電子郵件時,我經過一段時間後發現一個我無法追蹤的錯誤。如果我檢索一封簡短的電子郵件,它通常會毫無問題地下載數據。但是,如果我嘗試使用附件檢索電子郵件(使用更多字節進行傳輸),我通常會收到70-80,000字節的「錯誤」。但是,在我的真實設備上運行應用程序時,仍然會出現錯誤,但通常會達到400-500,000,儘管有時會更早。

在桌面上運行此應用程序(相同的第三方套接字,但另一個.dll)沒有任何問題。我可以輕鬆下載巨大的附件。我懷疑它與網絡問題有關 - 例如使用Pocket Outlook從相同的郵件服務器作品中下載帶有附件的電子郵件。

該錯誤不會在調試模式下顯示 - 我的意思是代碼不會停在某一行。我已經在我的代碼中插入了Try-Catch,但沒有顯示錯誤。但是,使用調試輸出窗口後,我注意到一段時間後出現一行,其內容如下:「線程0x566967f6已退出,代碼爲0(0x0)」。

我相信問題是與DLL庫(這是一個基於ATL的COM庫)或更可能是我編寫這個庫的方式,但在寫入它們之前,我想看看我是否可以追蹤到問題,以及爲什麼它可能會導致我的錯誤/問題。這樣,當我寫信給他們時,我可以提供更多信息。所以,我只是想知道在VS 2008中是否有辦法讓我獲得更多關於我的問題/錯誤的信息?謝謝。

回答

3

退出碼0意味着沒有錯誤發生,線程正常終止。如果它不應該終止,試着找出它在什麼情況下可以找出哪一個允許線程提前退出。

我能想到爲什麼這可能發生在移動設備上而不是您的桌面上的唯一原因是緩衝區。我的猜測是,更小,更慢的設備無法跟上傳入數據的速度,因此緩衝區被覆蓋。

+0

有趣的 - 我不知道緩衝區可能會被覆蓋。使用我的WIFI連接時,出現所謂的「無錯誤」。我現在將通過GPRS/EDGE嘗試一下,看看會發生什麼。也許降低速度可能會有所幫助,或者可能會增加緩衝區大小。感謝您的建議。 – moster67 2009-01-14 19:32:41

相關問題