繁体   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