10
爲什麼await
不允許在finally
塊中?爲什麼在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 –
只是在這裏猜測:也許這是因爲嘗試...最後,並在不同的編譯器步驟等待發生,他們不寫作? –