Новый статический метод 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>
Любые идеи о том, что происходит? Майкл