Perché await
non è consentito in un blocco finally
?Perché attendere non è consentito in un blocco finale?
public async void Fn()
{
try
{
}
finally
{
await Task.Delay(4000);
}
}
sapendo che è possibile ottenere il Awaiter
manualmente
public void Fn()
{
try
{
}
finally
{
var awaiter = Task.Delay(4000).GetAwaiter();
}
}
Hai letto il post del blog di Eric Lippert su nessun rendimento in blocchi alla fine? Molti degli stessi punti si applicano: http://blogs.msdn.com/b/ericlippert/archive/2009/07/16/iterator-blocks-part-three-why-no-yield-in-finally.aspx –
solo congettura qui: forse è perché provare ... finalmente e attendi accadere in diversi passi del compilatore e non compongono bene? –