Warum scheint Task.Run Func <T> anders zu behandeln als anderen Code?

Die neue statische Task.Run-Methode in .NET 4.5 scheint sich nicht wie erwartet zu verhalten.

Zum Beispiel:

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

Kompiliert gut, aber

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

beschwert sich, dass MyIntReturningMethod den falschen Typ zurückgibt.

Vielleicht verstehe ich einfach nicht, welche Überladung von Task.Run aufgerufen wird. Aber in meinen Augen sieht mein Lambda-Code oben sehr nach a ausFunc<Int32>und MyIntReturningMethod ist definitiv kompatibel mitFunc<Int32>

Irgendwelche Ideen, was los ist? Michael

Antworten auf die Frage(6)

Ihre Antwort auf die Frage