Windows phone 7 BackgroundTransferService-何时调用TransferProgressChanged?

Windows phone 7 BackgroundTransferService-何时调用TransferProgressChanged?,windows-phone-7,Windows Phone 7,在windows phone 7上使用BackgroundTransferService时,有没有办法控制调用TransferProgressChanged的频率?我猜这与用于下载的内部缓冲区的大小有关,但是我看不到任何设置这个的属性 BytesReceived值的间隔不是相等的,甚至对于重复下载同一个文件也是相同的,但看起来大约是总文件大小的1% 对于小文件来说,这是可以的,但在下载大文件(2GB电影)时,用户界面会非常无响应。当下载百分比发生变化时,BackgroundTransferSer

在windows phone 7上使用BackgroundTransferService时,有没有办法控制调用TransferProgressChanged的频率?我猜这与用于下载的内部缓冲区的大小有关,但是我看不到任何设置这个的属性

BytesReceived值的间隔不是相等的,甚至对于重复下载同一个文件也是相同的,但看起来大约是总文件大小的1%


对于小文件来说,这是可以的,但在下载大文件(2GB电影)时,用户界面会非常无响应。

当下载百分比发生变化时,BackgroundTransferService会更新(正如您所注意到的,仅在整数上)。这与marketplace下载保持一致。在marketplace下载中,更新进度有时需要很长时间(至少在我被迫使用边缘连接下载时)

在你的例子中,如果文件那么大,我会使用第二个动画,这样用户就知道下载还在进行中。我可能会在实际进度百分比显示上方添加一个“下载…”文本,并为椭圆设置动画


报告您自己执行的下载进度相对容易,但BackgroundTransferService由操作系统控制,因此必须处理所有应用程序的资源分配。如果您正在使用它,那么大多数时候用户甚至看不到进度显示,因为他们正在做其他事情。这意味着过于频繁地报告进展情况是浪费资源。如果我要将2GB文件下载到手机上,我会每隔20-30分钟检查一次进度,我不会等到进度显示更新后再返回到我正在做的任何事情。

你能告诉我你在做什么吗?因为BackgroundTranserService不应该影响用户界面。也许“无响应”这个词是错误的。我只想要一个比我现在得到的每分钟更新一次更频繁的进度指示器?这是WP7.5看起来完成了一半的另一个例子。我越来越认为,在统一的windows 8平台可用之前,我应该推迟windows mobile的开发。更新了我的答案,并给出了回应。我不认为它已经完成了一半,而是很多开发人员(包括我自己)都有windows开发的习惯/技术,他们希望在WP7上继续使用这些习惯/技术。大多数情况下,这些都是不必要的。