我正在尝试在任务中运行一个函数,但我做错了。 下面是一个例子:
var t = Task<int>.Factory.StartNew(() => GenerateResult(2));
static int GenerateResult(int i)
{
return i;
}
最后Console.WriteLine(t);
这将返回:
System.Threading.Tasks.Task`1 [System.Int32]
我希望自己成为2岁。 我在这做错了什么? :/
答案 0 :(得分:13)
您正在打印您创建的任务对象。有关结果,请参阅.Result
属性:
Console.WriteLine(t.Result);
答案 1 :(得分:6)
您需要使用t.Result
。
例如
Console.WriteLine(t.t.Result);
您的代码基本上如下所示:
Task<int> t = Task<int>.Factory.StartNew(() => GenerateResult(2));
当你写Console.WriteLine(t);
时,实际上只是打印Task
而不是integer
。为了能够访问结果,您需要添加.Result
。