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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With