如何获取有关后台下载失败原因的信息?
How do I get information about why a background download is failing?
在 WinRT 中,我正在尝试生成后台下载,但我的头似乎撞到了墙上。我有以下代码:
var downloader = new BackgroundDownloader();
var operation = downloader.CreateDownload(new Uri(rendition.Url), resultingFile);
var downloadTask = operation.StartAsync().AsTask(new Progress<DownloadOperation>(ProgressHandler));
一次一个地执行代码,当我调用 CreateDownload()
时,结果 operation.Progres..Status
是 Idle
,这是合乎逻辑的,因为我还没有开始它。
但是,如果我多走一步,StartAsync()
运行,operation.Progress.Status
现在等于 Error
。我的进度处理程序从未被调用。
有什么方法可以得到关于错误是什么的更详细的信息吗?我找不到任何可以告诉我下载有什么问题的东西。
首先我看不到你已经分配了你的
resultingFile
我用
StorageFile file = /* Instantiate */;
我正在创建多个任务,因为需要下载很多文件。
那我就这样做了,现在参考你的代码
//List to hold my tasks
List<Task> dloadTasks = new List<Task>();
//SET callback
Progress<DownloadOperation> progressCallback = new Progress<DownloadOperation>(DownloadProgress);
//YOUR CODE!
var downloader = new BackgroundDownloader();
var operation = downloader.CreateDownload(new Uri(rendition.Url), resultingFile);
//Your code modified a bit
var yourResult = await operation.StartAsync().AsTask(progressCallback);
//This is where my way changes from your way
Task downloadCompletionTask = HandleDownloadAsync(operation , true);
//Add to list with tasks
dloadTasks.Add(downloadCompletionTask);
//Then i Await them
await Task.WhenAll(downloadCompletionTasks);
在 WinRT 中,我正在尝试生成后台下载,但我的头似乎撞到了墙上。我有以下代码:
var downloader = new BackgroundDownloader();
var operation = downloader.CreateDownload(new Uri(rendition.Url), resultingFile);
var downloadTask = operation.StartAsync().AsTask(new Progress<DownloadOperation>(ProgressHandler));
一次一个地执行代码,当我调用 CreateDownload()
时,结果 operation.Progres..Status
是 Idle
,这是合乎逻辑的,因为我还没有开始它。
但是,如果我多走一步,StartAsync()
运行,operation.Progress.Status
现在等于 Error
。我的进度处理程序从未被调用。
有什么方法可以得到关于错误是什么的更详细的信息吗?我找不到任何可以告诉我下载有什么问题的东西。
首先我看不到你已经分配了你的
resultingFile
我用
StorageFile file = /* Instantiate */;
我正在创建多个任务,因为需要下载很多文件。
那我就这样做了,现在参考你的代码
//List to hold my tasks
List<Task> dloadTasks = new List<Task>();
//SET callback
Progress<DownloadOperation> progressCallback = new Progress<DownloadOperation>(DownloadProgress);
//YOUR CODE!
var downloader = new BackgroundDownloader();
var operation = downloader.CreateDownload(new Uri(rendition.Url), resultingFile);
//Your code modified a bit
var yourResult = await operation.StartAsync().AsTask(progressCallback);
//This is where my way changes from your way
Task downloadCompletionTask = HandleDownloadAsync(operation , true);
//Add to list with tasks
dloadTasks.Add(downloadCompletionTask);
//Then i Await them
await Task.WhenAll(downloadCompletionTasks);