10
なぜブロックfinally
にawait
が許可されていませんか?なぜfinallyブロックで待たれるのですか?
public async void Fn()
{
try
{
}
finally
{
await Task.Delay(4000);
}
}
から撮影Awaiter
手動
public void Fn()
{
try
{
}
finally
{
var awaiter = Task.Delay(4000).GetAwaiter();
}
}
あなたはEric Lippertのブログ記事を読んでいますか?最後のブロックに収穫はありませんか?同じポイントの多くが適用されます:http://blogs.msdn.com/b/ericlippert/archive/2009/07/16/iterator-blocks-part-three-why-no-yield-in-finally.aspx –
推測はここにある:多分それはtry ... finallyが異なるコンパイラのステップで起こるのを待っていて、うまく構成していないからだろうか? –