6

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? :/

2 Answers 2

13

You are printing the task object that you created. For result, see .Result property:

Console.WriteLine(t.Result);

Sign up to request clarification or add additional context in comments.

1 Comment

Oh my god, how did I not see this! Thanks.
6

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.