c # .net dlaczego Task.Run wydaje się obsługiwać Func <T> inaczej niż inny kod?
Nowa metoda statyczna Task.Run, która jest częścią platformy .NET 4.5, wydaje się nie zachowywać tak, jak można by oczekiwać.
Na przykład:
Task<Int32> t = Task.Run(()=>5);
kompiluje się dobrze, ale
Task<Int32> t = Task.Run(MyIntReturningMethod);
...
public Int32 MyIntReturningMethod() {
return (5);
}
skarży się, że MyIntReturningMethod zwraca niewłaściwy typ.
Być może nie rozumiem, które przeciążenie Task.Run jest wywoływane. Ale moim zdaniem powyższy kod lambda wygląda bardzo podobnie doFunc<Int32>
, a MyIntReturningMethod jest zdecydowanie kompatybilny zFunc<Int32>
Jakieś pomysły na to, co się dzieje? Michael