本文整理汇总了C#中WebDownload.DownloadFileAsync方法的典型用法代码示例。如果您正苦于以下问题:C# WebDownload.DownloadFileAsync方法的具体用法?C# WebDownload.DownloadFileAsync怎么用?C# WebDownload.DownloadFileAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebDownload
的用法示例。
在下文中一共展示了WebDownload.DownloadFileAsync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoWork
//.........这里部分代码省略.........
int.Parse(match.Groups[1].Value),
int.Parse(match.Groups[2].Value),
int.Parse(match.Groups[3].Value),
int.Parse(match.Groups[4].Value));
if (thisVersion > remoteLatestVersion)
{
remoteLatestVersion = thisVersion;
remoteFileName = fileString;
}
}
}
if (localLatestVersion == null || remoteLatestVersion > localLatestVersion)
{
//update
SetStatus("Downloading new Wurm Assistant version (" + remoteLatestVersion + ")");
SetProgressBarToBlocks();
const int maxTries = 3;
int currentTry = 1;
string downloadPath = GeneralHelper.PathCombineWithCodeBasePath(remoteFileName);
while (currentTry <= maxTries)
{
try
{
using (var webclient = new WebDownload((int)(GetTimeout(currentTry).TotalMilliseconds)))
{
var tcs = new TaskCompletionSource<bool>();
webclient.DownloadProgressChanged += (sender, args) =>
SetProgressBar(args.BytesReceived, args.TotalBytesToReceive);
webclient.DownloadFileCompleted += (sender, args) =>
tcs.SetResult(true);
webclient.DownloadFileAsync(
new Uri(BasePath + ControllerPath + string.Format(RequestTemplate, remoteFileName)),
downloadPath);
tcs.Task.Wait();
AllowRunningPrevious(false);
}
break;
}
catch (Exception ex)
{
SetDesc("Error while downloading new version: " + ex.Message);
currentTry++;
if (currentTry <= maxTries)
{
SetDesc("\r\n" + string.Format("Retrying... ({0} of {1})", currentTry - 1, maxTries - 1), true);
AllowRunningPrevious();
}
else
{
SetFailure("Download failed", allowPreviousVersion: previousVersionAvailable);
failed = true;
var fileinfo = new FileInfo(downloadPath);
if (fileinfo.Exists)
{
try
{
fileinfo.Delete();
}
catch (Exception ex2)
{
SetDesc("failed to clean the partially downloaded file: " + downloadPath +
"\r\n" + ex2.Message);
LogException(ex2);