2013-06-18 10 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简单地吞下异常,杀死下载线程并触发完成的事件而没有错误。

相关问题