Tar*_*ssa 6 c# xaml windows-10 windows-10-mobile
我试图在Windows 10通用应用程序上使用此代码下载文件:
await downloadOperation.StartAsync().AsTask(token, progressCallback);
Run Code Online (Sandbox Code Playgroud)
它在PC上工作但在移动设备上有时它不会开始下载,甚至在我重新启动移动设备之前都没有例外.这是系统中的错误还是我遗漏了什么?
编辑1:
任务的状态是"等待激活",所以它不会抛出异常.它只是等待,直到我重新启动手机才开始我总是尝试使用相同的网址,我在电脑上没有这个问题.这只是关于手机的.任务的属性如下:

我终于发现问题了。当我开始下载操作并关闭应用程序而不取消操作时,BackgroundDownloader 会保留下一个应用程序启动的操作。当下载操作的数量达到允许的最大同时操作数(我认为是5)时,下一个操作将在等待列表()上,直到前一个操作完成。所以当应用程序启动时我必须停止所有未完成的操作,如下所示:
Task.Run(async () =>
{
var downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();
foreach (var download in downloads)
{
CancellationTokenSource cts = new CancellationTokenSource();
download.AttachAsync().AsTask(cts.Token);
cts.Cancel();
}
var localFolder = ApplicationData.Current.LocalFolder;
var files = await localFolder.GetFilesAsync();
files = files.Where(x => x.Name.EndsWith("_")).ToList();
foreach (StorageFile file in files)
{
await file.DeleteAsync(StorageDeleteOption.PermanentDelete);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |