【发布时间】:2015-07-20 06:28:49
【问题描述】:
下面我写了两种方法
private Task<string> GetStringTask(string url)
{
var client = new WebClient();
var task = client.DownloadDataTaskAsync(new Uri(url));
var task2 = task.ContinueWith<string>(task1 =>
{
var str = Encoding.Default.GetString(task1.Result);
Thread.Sleep(5000);
return str;
});
return task2;
}
private async Task<string> GetStringAsyc(string url)
{
var client = new WebClient();
var htmlByte = await client.DownloadDataTaskAsync(new Uri(url));
var task2 = await Task.Factory.StartNew(() =>
{
var str = Encoding.Default.GetString(htmlByte);
Thread.Sleep(2000);
return str;
});
return task2;
}
我可以像下面一样调用另一个异步方法中的两个方法
var mystring = await GetStringTask("http://www.microsoft.com");
var mystring1 = await GetStringAsync("http://www.microsoft.com");
两种方法都返回相同的结果。谁能解释一下这两种方法的区别。
【问题讨论】:
标签: c# asynchronous