Вам нужно использовать t.Result
.
Например,
Console.WriteLine(t.t.Result);
Ваш код по сути выглядит так:
Task<int> t = Task<int>.Factory.StartNew(() => GenerateResult(2));
А когда вы пишете Console.WriteLine(t);
вы на самом деле просто печатаете Task
, а не integer
.Чтобы получить доступ к результату, вам нужно добавить .Result
.