Monotouch应用程序上的WebClient停止,无需完成下载

时间:2013-06-18 10:42:35

标签: xamarin.ios webclient xamarin

我再次遇到(see old question)使用WebClient类下载文件的问题。如果我打开应用程序并直接进入页面并开始下载,它的效果很好。但是,如果我先点击一下然后尝试下载文件,WebClient会先下载1%,然后停止,触发下载完成事件而不会出现错误。我尝试只注册到DownloadProgressChanged事件,但WebClient仍然在1%后停止。并且总是1%,而不是2%或3%...当前版本的应用程序“FliteLevelTV”已经在商店中并使用完全相同的代码执行下载,没有问题。

我目前正在使用Xamarin Studio 4.0.8(build2)和Xamarin.iOS版本:6.2.7.1(商业版)。

我首先想到的可能是我的WebClient在完成之前被垃圾收集,但如果是这样的话,它就不会触发下载完成事件。在任何情况下,在我的应用程序中,整个下载系统通过Singleton控制,该单例具有文件下载器的单个实例作为类属性,其中还具有WebClient的单个实例作为属性,并且控制仅下载一个文件一次使用队列。所以我不确定如何以不同的方式构建它以提高效率。

请帮助,我真的需要推送一些更新,这个问题就是把握整个问题。

1 个答案:

答案 0 :(得分:0)

以防万一有人被这个问题绊倒。

我使用HttpWebRequest实现了该过程,并发现了问题。连接到WebClient的事件之一是对触发UI更改的值对象进行更改,这当然不起作用,作为后台线程上的WebClient。看起来在这种情况下,WebClient只是吞下异常,杀死下载线程并触发已完成的事件而没有错误。