2013-06-18 15 views
0

我再次(see old question)使用WebClient類下載文件時出現問題。如果我打開應用程序並直接進入一個頁面並開始下載,那麼效果很好。但是,如果我第一次點擊一會兒,然後嘗試下載文件,WebClient會首先下載1%,然後停止,從而觸發下載完成事件而不會出錯。我嘗試只註冊到DownloadProgressChanged事件,但WebClient在1%後仍然停止。它總是1%,而不是2%或3%......應用程序「FliteLevelTV」的當前版本已經在商店中並且使用完全相同的代碼執行下載,沒有問題。MonoTouch上的WebClient應用程序停止,無需完成下載

我目前使用Xamarin Studio 4.0.8(build2)與Xamarin.iOS版本:6.2.7.1(商業版)。

我首先想到的可能是我的WebClient在它完成之前正在被垃圾收集,但是如果是這種情況,它不會觸發下載完成事件。在任何情況下,在我的應用程序中,整個下載系統都是通過一個Singleton進行控制的,該Singleton具有文件下載器的單個實例作爲類屬性,該屬性還具有WebClient的單個實例作爲屬性,並控制只下載一個文件一次使用一個隊列。所以我不知道我怎樣才能更有效地構建它。

請幫忙,我真的需要推動一些更新,這個問題是持有整個事情。

+0

你可以嘗試使用早期版本的Xamarin.iOS來查看是否改變了?您可以嘗試的另一件事是創建一個新項目,並嘗試下載文件以查看它是否是特定於項目的問題。 –

+0

我有兩個使用相同代碼的項目。兩者的問題都是一樣的。 –

+0

然後請在http://bugzilla.xamarin.com上提供一個測試用例的bug。 –

回答

0

以防萬一任何人被這個問題絆倒。

我用HttpWebRequest實現了這個過程並發現了問題。與WebClient掛鉤的其中一個事件是對觸發UI更改的值對象進行更改,當然這不會起作用,因爲它是後臺線程上的WebClient。看起來在這種情況下,WebClient簡單地吞下異常,殺死下載線程並觸發完成的事件而沒有錯誤。

相關問題