我想利用这个任务<>构造函数 。 我似乎无法得到正确的sntax可有人纠正我的代码。
另外,我在右想,如果一个任务是构建这种方式,它没有启动?
构造函数我想我需要:
Task<TResult>(Func<Object, TResult>, Object)
我的代码示数:
参数1:不能从“方法组”转换为“ 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");
//creating task
var yourTask = Task<int>.Factory.StartNew(() => GetIntAsync("3").Result);
//...
int result = yourTask.Result;
更新:
是的,不幸的是它启动任务。 上面不是提到使用的代码:
//creating task
var yourTask = new Task<int>(() => GetIntAsync("3").Result);
//...
// call task when you want
int result = yourTask.Start();