2011-01-20 58 views
7

我使用WebClient的DownloadFileAsync(在C#中)異步下載文件。我有附加到DownloadProgressChanged和DownloadFileCompleted事件的事件處理程序。我希望通過DownloadFileCompleted事件處理程序中的AsyncCompletedEventArgs的Error屬性獲得有關任何錯誤的通知。如果在下載開始之前連接不存在,則它工作正常。它出現了適當的錯誤,我得到了上面提到的屬性中的錯誤。但是,如果在下載過程中連接斷開,則不會發生任何事情。事件處理程序不會被調用,它會一直等待。我該怎麼處理這種情況? 謝謝。在WebClient異步下載文件時檢測連接丟失(在C#中)

+0

你能創建一個system.net跟蹤日誌嗎?有關如何執行此操作,請參閱http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html。並將日誌發佈到pastebin.com上,並將鏈接放到日誌中。我們可以看看。表面上它聽起來像一個錯誤,但日誌文件將有助於調試。 – feroze 2011-02-06 17:29:23

回答

6

做你所要求的最好的方法可能是實現你自己的呼叫超時。

基本上,創建一個計時器,每次發生DownloadProgressChanged事件時都會被重置。這樣,如果在超時期限內沒有獲得任何進度更新,則可以在WebClient上調用CancelAsync命令,以免永遠等待。

這是我能夠做到的唯一方法。