我只是为了测试async关键字而尝试这段异步代码:
public async Task<string> AsyncMethod()
{
var link = "http://www.google.com";
var webclient = new WebClient();
var result = await webclient.DownloadStringTaskAsync(new Uri(link));
return result;
}
public async Task<ActionResult> Index()
{
var a = AsyncMethod();
var b = AsyncMethod();
Task.WaitAll(a, b);
return View();
}
但是当我调试它时,调试器会执行Task.WaitAll
,但什么也不做(返回关键字从未执行)。。如果我在两个'AsyncMethod'之前设置await并删除Task.WaitAll
,它就可以工作。那么我做错了什么?
async
修饰符的方法返回的任务已经在运行。 - e_ne