本文整理汇总了C#中Job.OnCancelled方法的典型用法代码示例。如果您正苦于以下问题:C# Job.OnCancelled方法的具体用法?C# Job.OnCancelled怎么用?C# Job.OnCancelled使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Job
的用法示例。
在下文中一共展示了Job.OnCancelled方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessDownload
/// <summary>
/// Starts the download.
/// </summary>
/// <remarks>
/// This is called when the queue has a new download slot available.
/// </remarks>
/// <param name="job">Job to start</param>
/// <param name="token">Cancelation token</param>
/// <returns>Job</returns>
private async Task<Job> ProcessDownload(Job job, CancellationToken token)
{
var dest = Path.Combine(_downloadPath, job.File.Name);
_logger.Info("Starting downloading of {0} to {1}", job.Uri, dest);
// setup cancelation
token.Register(job.Client.CancelAsync);
// update statuses
job.OnStart(token, dest);
// do the grunt work
try {
await job.Client.DownloadFileTaskAsync(job.Uri, dest);
job.OnSuccess();
_logger.Info("Finished downloading of {0}", job.Uri);
} catch (WebException e) {
if (e.Status == WebExceptionStatus.RequestCanceled) {
job.OnCancelled();
} else {
job.OnFailure(e);
_logger.Error(e, "Error downloading file (server error): {0}", e.Message);
_crashManager.Report(e, "network");
_messageManager.LogError(e, "Error downloading file");
}
} catch (Exception e) {
job.OnFailure(e);
_logger.Error(e, "Error downloading file: {0}", e.Message);
_crashManager.Report(e, "network");
_messageManager.LogError(e, "Error downloading file");
}
return job;
}