Il seguente codice si bloccherà per sempre.Task.Delay non completa mai
public async Task DoSomethingAsync()
{
await Task.Delay(2000);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DoSomethingAsync().Wait();
// Task.Delay(2000).Wait();
}
Se posso passare la chiamata a DoSomethingAsync
con il codice commentato, si comporta come previsto. Sospetto che in qualche modo l'attesa annidata stia causando un deadlock, ma non sono sicuro del perché o di come risolverlo.
possibile duplicato [An asincrona/attendere esempio che causa un deadlock] (http://stackoverflow.com/questions/15021304/an-async-await-example-that-causes-a -deadlock) –