私は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
何もしません(リターンキーワークは実行されません)。2つの「AsyncMethod」の前に待機を設定し、Task.WaitAll
それを削除すると、機能します。