【发布时间】:2021-09-20 11:55:57
【问题描述】:
我需要创建一个新的通用任务,它采用异步 lambda,但不会立即启动。这就是为什么我不能使用Task.Run 并且我想实例化一个新任务。我不能这样做,因为 C# 给了我以下错误:
无法将异步 lambda 表达式转换为委托类型
Func<int>。 异步 lambda 表达式可能返回void、Task或Task<T>,没有一个 可转换为Func<int>
我的代码是
Task<int> task = new Task(async () => {
var number = await getNextNumber();
return await algorithm(number);
});
【问题讨论】:
-
需要返回值吗?像这样的异步函数,好像不能有返回值。
-
@Nigel 我是否正确理解您需要延迟执行的异步函数?
-
问题解决了吗?你看过斯蒂芬克利里的回答吗?