我正在创建一个
Windows 10 UWP应用程序,其中涉及BackgroundDownloader,这只适用于桌面而不是手机.
码:
var dl = new BackgroundDownloader(); dl.CostPolicy = BackgroundTransferCostPolicy.Always; file = await localSoundsFolder.CreateFileAsync(name,CreationCollisionOption.ReplaceExisting); if (file != null) { var d = dl.CreateDownload(new Uri(uriToDownloadFrom,UriKind.RelativeOrAbsolute),file); d.Priority = BackgroundTransferPriority.High; var progressCallback = new Progress<DownloadOperation>(x => DownloadProgress(x,sc)); try { await d.StartAsync().AsTask(cancellationToken.Token,progressCallback); //After this line it doesn't progress! CancellationTokenSource token = Utility.cancellationList[sc]; if (token != null) { token.Cancel(); Utility.cancellationList.Remove(sc); Debug.WriteLine("The sc has been removed from the download list"); } } catch { return; } } private static void DownloadProgress(DownloadOperation download,SoundClass sc) { Debug.WriteLine("Callback"); var value = download.Progress.BytesReceived * 100 / download.Progress.TotalBytesToReceive; Debug.WriteLine("The bytesReceived is {0} and total bytes is {1}",download.Progress.BytesReceived.ToString(),download.Progress.TotalBytesToReceive.ToString()); new System.Threading.ManualResetEvent(false).WaitOne(10); sc.downloadProgress = value; if (download.Progress.Status == BackgroundTransferStatus.Completed || value >= 100) { Debug.WriteLine("DONE donwloading the file {0}",download.ResultFile.Name); Debug.WriteLine("The file name happened to be to be added was " + download.ResultFile.Name); string fileName = download.ResultFile.Name; } }
行等待d.StartAsync().AsTask(cancellationToken.Token,progressCallback);该计划不进行.而且也没有错误.这不仅适用于手机在桌面上完美运行!我错过了什么?