我想使用 this Task<TResult>
构造函数。我似乎无法正确使用语法。有人可以更正我的代码吗?
另外,我认为如果 Task
是对的吗?是这样构造的,还没开始?
我认为我需要的构造函数是:
Task<TResult>(Func<Object, TResult>, Object)
我得到的错误是:
Argument 1: cannot convert from 'method group' to '
System.Func<object,int>
'
static void Main(string[] args)
{
var t = new Task<int>(GetIntAsync, "3"); // error is on this line
// ...
}
static async Task<int> GetIntAsync(string callerThreadId)
{
// ...
return someInt;
}
最佳答案
var t = new Task<int>(() => GetIntAsync("3").Result);
或者
var t = new Task<int>((ob) => GetIntAsync((string) ob).Result, "3");
为避免使用 lambda,您需要编写如下静态方法:
private static int GetInt(object state)
{
return GetIntAsync(((string) state)).Result;
}
然后:
var t = new Task<int>(GetInt, "3");
关于c# - 如何在不启动任务的情况下构建任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066349/