1
這段代碼實際上做了什麼?「異步任務」成員問題
public async Task Foo()
{
}
你得到的是,由於Foo
不await
,將同步運行的警告。這完全等於public void Foo()
嗎?爲什麼它有效返回Task
,但實際上不創建並返回一個?
同樣,下面做了什麼?
public async Task Foo()
{
await SomeOtherAsyncFn();
}
當然,對於第二個例子,您也可以直接編寫'return SomeOtherAsyncFn();'並且讓方法*不是'async'來避免狀態機及其伴隨的所有開銷。 – Servy
謝謝!那麼這是否意味着'異步任務Foo(){/ *某些非等待工作在這裏* /}'在功能上*和'void Foo(){/ *在這裏有一些非等待工作* /}'相同? – moswald
@moswald是的 - 雖然它返回一個「完成」的任務,並且經過很多工作才能到達那裏。 –