比较以下两种方法:
static async Task<int> DownloadAsync(string url)
{
var client = new WebClient();
var awaitable = client.DownloadDataTaskAsync(url);
byte[] data = await awaitable;
return data.Length;
}
用法:Task<int> task = DownloadAsync("http://stackoverflow.com");
这行代码是关于IT技术的。它表示创建一个名为“task”的异步任务,该任务会下载来自指定URL的数据并返回一个整数值。
如果您需要使用此代码,请确保提供正确的URL地址。
static Task<int> Download(string url)
{
var client = new WebClient();
var task = client.DownloadDataTaskAsync(url);
byte[] data = task.Result;
return Task.FromResult(data.Length);
}
使用方法:
Task task = new Task(() => Download("http://stackoverflow.com"));
task.Start();
据我所知,这两种方法都是异步运行的。我的问题是:
这两种方法之间有什么行为上的区别吗?
除了它是一种好的模式外,为什么我们更喜欢使用async-await?
.ConfigureAwait(false)
,您在DownloadAsync
中的所有等待都可以使用它。请参见此处以了解原因。 - Lukazoid