c # .net ¿por qué parece que Task.Run maneja Func <T> de manera diferente a otro código?

El nuevo método estático Task.Run que forma parte de .NET 4.5 no parece comportarse como uno podría esperar.

Por ejemplo:

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

compila bien, pero

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

se queja de que MyIntReturningMethod está devolviendo el tipo incorrecto.

Quizás no entiendo a qué sobrecarga de Task.Run se está llamando. Pero en mi mente, mi código lambda anterior se parece mucho a unFunc<Int32>, y MyIntReturningMethod es definitivamente compatible conFunc<Int32>

¿Alguna idea de lo que está pasando? Miguel

Respuestas a la pregunta(6)

Su respuesta a la pregunta