Xamarin.ios Monotouch应用程序上的WebClient在未完成下载的情况下停止

Xamarin.ios Monotouch应用程序上的WebClient在未完成下载的情况下停止,xamarin.ios,webclient,xamarin,Xamarin.ios,Webclient,Xamarin,使用WebClient类下载文件时再次遇到()问题。如果我打开应用程序,直接进入一个页面并开始下载,效果会很好。但是,如果我先单击一段时间,然后尝试下载一个文件,WebClient将下载前1%的文件,然后停止,从而触发一个下载完成事件,不会出现错误。我尝试只注册DownloadProgressChanged事件,但WebClient在1%之后仍然停止。它总是1%,而不是2%或3%。。。应用程序“FliteLevelTV”的最新版本已经在商店中,并以完全相同的代码执行下载,没有问题 我目前正在使用

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

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

我首先想到可能是我的WebClient在完成之前被垃圾收集,但如果是这样,它将不会触发下载完成事件。在任何情况下,在我的应用程序中,整个下载系统都是通过一个单实例来控制的,该单实例的类属性是file downloader的一个实例,它的属性也是WebClient的一个实例,并控制使用队列一次只下载一个文件。因此我不确定如何以不同的方式构建它以提高效率


请帮助我,我真的需要推送一些更新,而这个问题是整个问题的关键。

以防有人被这个问题绊倒


我用HttpWebRequest实现了这个过程,并发现了问题。连接到WebClient的一个事件是对值对象进行更改,该值对象触发了对UI的更改,这当然不起作用,因为WebClient位于后台线程上。在这种情况下,WebClient似乎会简单地接受异常,终止下载线程并触发已完成的事件,而不会出现错误。

您是否可以尝试使用早期版本的Xamarin.iOS来查看是否发生了更改?你可以尝试的另一件事是创建一个新项目,并尝试下载那里的文件,看看这是否是一个项目特定的问题。这两个方面的问题都是一样的。那么请用一个测试用例在提交一个bug。做一个测试用例将是非常困难的。我还做了一些测试,只有在我加载了一个显示了几个视频缩略图的视图后,问题才会出现。如果我触发下载,即使从开始屏幕重复,但没有加载此视图,它也会按预期工作。如果您有任何想法,我将不胜感激。我尝试了monotouch 6.2.2.8,这是我在Xamarin网站上能看到的最新版本,结果也是一样的。