Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 后台文件传输问题_C#_Windows Phone 7_Windows Phone 7.1_File Transfer - Fatal编程技术网

C# 后台文件传输问题

C# 后台文件传输问题,c#,windows-phone-7,windows-phone-7.1,file-transfer,C#,Windows Phone 7,Windows Phone 7.1,File Transfer,我在WP7中使用后台文件传输时遇到了这个问题。当我的应用程序正在运行时,它可以完美地工作,但只要我单击Windows按钮,它就会停止(并在我再次激活应用程序时恢复)。后台文件传输的目的不是在后台运行,即使应用程序已停用?它是否必须在一个单独的类中(某种后台代理类,与主项目分开?)真的令人沮丧,当我在做这里的教程所说的一切时: 我是否需要做一些“特殊”的事情来确保它在后台运行,或者某些方法,可能是我自己创建的(获取url等),在停用时无法访问?我是否可以在停用时不添加到队列 非常感谢您抽出时间:)

我在WP7中使用后台文件传输时遇到了这个问题。当我的应用程序正在运行时,它可以完美地工作,但只要我单击Windows按钮,它就会停止(并在我再次激活应用程序时恢复)。后台文件传输的目的不是在后台运行,即使应用程序已停用?它是否必须在一个单独的类中(某种后台代理类,与主项目分开?)真的令人沮丧,当我在做这里的教程所说的一切时:

我是否需要做一些“特殊”的事情来确保它在后台运行,或者某些方法,可能是我自己创建的(获取url等),在停用时无法访问?我是否可以在停用时不添加到队列

非常感谢您抽出时间:)

编辑:一点调试告诉我队列中的文件实际上正在下载。它会完成,但在我重新激活应用程序之前,它不会获取下一个。这样做时,我可以不使用自己的方法、变量等吗?也许我有一个内部队列,比如说,20个项目。当这变为零时,我如何填充下载队列(最多5个)

EDIT2:在Microsoft的示例中,他们说您可以稍后添加到队列:

// Check to see if the maximum number of requests per app has been exceeded.
if (BackgroundTransferService.Requests.Count() >= 5)
{
// Note: Instead of showing a message to the user, you could store the
// requested file URI in isolated storage and add it to the queue later.
MessageBox.Show("The maximum number of background file transfer requests for this application has been exceeded. ");
return;
}

但它并没有说我们是否可以在后台做这件事。因为这是关于后台文件传输的,他们应该提到它,否则我们应该假设它可以在后台完成,这似乎不是事实。但我们不知道这一点。有谁能100%确认这一点吗?

我也对此进行了研究,在最多5次排队下载完成后,不可能(根据我的研究)填充队列。我曾考虑使用后台代理,但后台代理无法使用BackgroundTransferRequest.Add,这意味着排队等待更多下载的唯一方法是在应用程序运行时(请参阅)


我唯一能想到的就是使用后台代理发送toast通知,让用户知道下载已经完成,他们应该启动应用程序来排队等待接下来的五次下载。这不太理想。

谢谢你的回复。基本上我也发现了这一点,但这还远远不够。我想一定有其他方法可以做到这一点,有没有其他人研究过这一点,也许找到了解决办法?