c # .net почему Task.Run обрабатывает Func <T> иначе, чем другой код?

Новый статический метод Task.Run, который является частью .NET 4.5, похоже, не работает так, как можно было бы ожидать.

Например:

Task<Int32> t = Task.Run(()=>5);     

компилируется нормально, но

Task<Int32> t = Task.Run(MyIntReturningMethod);
...
public Int32 MyIntReturningMethod() {
  return (5);
  }

жалуется, что MyIntReturningMethod возвращает неправильный тип.

Возможно, я просто не понимаю, какая перегрузка Task.Run вызывается. Но, на мой взгляд, мой лямбда-код выше очень похож наFunc<Int32>и MyIntReturningMethod определенно совместим сFunc<Int32>

Есть идеи о том, что происходит? Майкл

Ответы на вопрос(6)

Ваш ответ на вопрос