本文整理汇总了C#中IProgressReporter.SetProgressPercent方法的典型用法代码示例。如果您正苦于以下问题:C# IProgressReporter.SetProgressPercent方法的具体用法?C# IProgressReporter.SetProgressPercent怎么用?C# IProgressReporter.SetProgressPercent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProgressReporter
的用法示例。
在下文中一共展示了IProgressReporter.SetProgressPercent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetPackageAsync
public async Task<IStagedPackage> GetPackageAsync(IProgressReporter progressReporter, Version version)
{
progressReporter.SetProgressPercent(0);
progressReporter.SetProgressStatus("Downloading package for version " + version);
var tempFile = stagingLocation.CreateTempFile();
try
{
using (var webclient = new ExtendedWebClient((int)DefaultTimeout.TotalMilliseconds))
{
var tcs = new TaskCompletionSource<bool>();
byte lastPercent = 0;
webclient.DownloadProgressChanged += (sender, args) =>
{
var percent = (byte)(((double)args.BytesReceived / (double)args.TotalBytesToReceive) * 100);
if (percent > lastPercent)
{
lastPercent = percent;
progressReporter.SetProgressPercent(percent);
progressReporter.SetProgressStatus(string.Format("Downloaded {0}/{1}",
args.BytesReceived,
args.TotalBytesToReceive));
}
};
webclient.DownloadFileCompleted += (sender, args) =>
{
if (args.Error != null)
{
progressReporter.SetProgressPercent(100);
progressReporter.SetProgressStatus("download error: " + args.Error.ToString());
tcs.SetException(new ServiceException("Download error", args.Error));
}
else
{
progressReporter.SetProgressStatus("download completed");
tcs.SetResult(true);
}
};
webclient.DownloadFileAsync(
new Uri(string.Format("{0}/Package/{1}", webServiceRootUrl, version.ToString().Replace(".", "-"))),
tempFile.FullName);
await tcs.Task;
return stagingLocation.CreatePackageFromSevenZipByteArray(File.ReadAllBytes(tempFile.FullName), version);
}
}
finally
{
tempFile.Delete();
}
}
示例2: GetLatestVersionAsync
public async Task<Version> GetLatestVersionAsync(IProgressReporter progressReporter)
{
HttpClient client = new HttpClient();
client.Timeout = DefaultTimeout;
progressReporter.SetProgressPercent(null);
progressReporter.SetProgressStatus("Obtaining latest version");
var response = await client.GetAsync(string.Format("{0}/LatestVersion", webServiceRootUrl));
if (response.IsSuccessStatusCode)
{
using (var stream = await response.Content.ReadAsStreamAsync())
{
var versionString = serializer.Deserialize<string>(new JsonTextReader(new StreamReader(stream)));
progressReporter.SetProgressStatus("Latest version is: " + versionString);
return new Version(versionString);
}
}
else
{
throw new ServiceException(string.Format("Server returned {0} : {1}",
response.StatusCode,
response.ReasonPhrase));
}
}