[英]Async/Await not unwrapping task
有人可以解釋為什么我得到以下錯誤。 下面的代碼僅用於演示目的。
'System.Threading.Tasks.Task'不包含'Trim'的定義
var items = Enumerable.Range(1, 10).Select(async x => await DoStuff());
var trimmedThings = items.Select(x => x.Trim());
public async Task<string> DoStuff() { //Do Stuff };
我以為使用await會解開任務,露出字符串,所以項的類型將是Enumerable<string>
而不是Enumerable<Task<string>>
我以為使用等待將解開任務
是的 await DoStuff()
返回一個string
,而不是Task<string>
,但是由於該方法是async
方法,因此該方法需要返回Task
,因此它將返回值包裝到一個任務中,這意味着async x => await DoStuff()
的最終結果async x => await DoStuff()
與只編寫x => Dostuff()
相同,您只需要x => Dostuff()
包裝,然后重新包裝禮物 Task
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.