I'm trying to run a function in a task but I'm doing something wrong.
Heres an example:
var t = Task<int>.Factory.StartNew(() => GenerateResult(2));
static int GenerateResult(int i)
{
return i;
}
In the end Console.WriteLine(t);
This returns:
System.Threading.Tasks.Task`1[System.Int32]
I want i to be 2.
What am I doing wrong here? :/
You are printing the task object that you created. For result, see .Result
property:
Console.WriteLine(t.Result);
You need to use t.Result
.
For example
Console.WriteLine(t.t.Result);
Your code essentially looks like this:
Task<int> t = Task<int>.Factory.StartNew(() => GenerateResult(2));
And when you write Console.WriteLine(t);
you are actually just printing the Task
and not the integer
. To be able to access the result you need to add .Result
.