以下代碼將永久凍結。Task.Delay永不完成
public async Task DoSomethingAsync()
{
await Task.Delay(2000);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DoSomethingAsync().Wait();
// Task.Delay(2000).Wait();
}
如果我切換調用DoSomethingAsync
與註釋掉的代碼,其行爲與預期相同。我懷疑,不知何故,嵌套的等待正在導致死鎖,但我不知道爲什麼,或者如何解決它。
可能重複的[異步/等待例子導致死鎖(http://stackoverflow.com/questions/15021304/an-async-await-example-that-causes-a -deadlock) –