簡體   English   中英

異步/等待不展開任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM