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

Новый статический метод 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>

Любые идеи о том, что происходит? Майкл

18
задан Michael Ray Lovett 27 July 2012 в 21:28
поделиться