我有以下代码,它在 .NET 4.5
中工作正常return Task.Run(async () => await MyAsyncMethodThatReturnsAnObject()).Result;
现在我需要让它在 .NET 4.0 上运行,所以我想出了:
return Task.Factory.StartNew<object>(async () => { await MyAsyncMethodThatReturnsAnObject()}).Result;
但它给了我这个错误:
'任务&LT;对象&gt;'不包含GetAwaiter的定义,不包含 扩展方法'GetAwaiter'接受类型的第一个参数 '任务&LT;对象&gt;'
MyAsyncMethodThatReturnsAnObject
是一个工厂方法,其返回类型为object
。
答案 0 :(得分:3)
async / await是.NET 4.5。 您需要安装Microsoft.Bcl.Async才能在4中工作。
答案 1 :(得分:-2)
Task.Factory.StartNew<object>(() =>
MyAsyncMethodThatReturnsAnObject().Result,
TaskScheduler.Default
).Result