有这个代码:
class Program
{
static async Task Main()
{
await DownloadAsync();
}
static async Task DownloadAsync()
{
var options = new ProgressBarOptions
{
ProgressCharacter = '─',
ProgressBarOnBottom = true
};
const int totalTicks = 100;
using (WebClient wc = new WebClient())
{
var pbar = new ProgressBar(totalTicks, "Initial message", options);
wc.DownloadProgressChanged += (s, e) => { pbar.Tick(e.ProgressPercentage,"Download XML Plugin..."); };
await wc.DownloadFileTaskAsync(new Uri("http://dev.osel.pp.ua/Consulo/Plugins/com.intellij.xml_2961.zip"),"/home/ketronix/xml.tar.gz");
};
}
}
Main就个人而言,在我看来,该方法具有类型这一事实Task并不好。如何做到这一点,void同时在调用文件下载方法时,在单独的线程中绘制进度条并与下载进度同步?事实上,你只需要做一些事情而不是Task- void,同时继续工作。
谢谢大家。
异步
Main只是语法糖,旨在减少例程并简化代码。在您的情况下,“返回无效”毫无意义。设计
由编译器转换为