2011-08-02 3 views
6

작업에서 함수를 실행하려고하는데 잘못된 것이 있습니다. Heres는 예 : 결국C# 값을 반환하는 작업

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]

I 내가 원하는 2. 여기서 내가 뭘 잘못하고 있니? :/

답변

13

작성한 태스크 오브젝트를 인쇄 중입니다. 당신은 t.Result를 사용할 필요가

Console.WriteLine(t.Result);

+0

오 세상에, 어떻게 내가 이것을 보지 못했습니까! 감사합니다. . – krtek

6

: 결과를 들어, .Result 속성을 참조하십시오.

Task<int> t = Task<int>.Factory.StartNew(() => GenerateResult(2)); 

을 그리고 당신은 쓸 때 Console.WriteLine(t); 당신은 실제로 단지 Task 아니라 integer을 인쇄 : 예를 들어

Console.WriteLine(t.t.Result); 

코드는 기본적으로 다음과 같습니다. 결과에 액세스하려면 .Result을 추가해야합니다.

관련 문제