我写了下面的代码,
Task.Factory.StartNew<int>(async () =>
{
await Task.Delay(1000);
return 42;
});
但读取行出现在“async”关键字下,由于某些语法错误导致代码无法编译,有人可以建议我该怎么做?
很多!
答案 0 :(得分:5)
您可能希望使用Task.Run
,async
lambdas具有更自然的语法:
var task = Task.Run(async () =>
{
await Task.Delay(1000);
return 42;
});
答案 1 :(得分:2)
您必须返回Task<T>
,如下所示:
Task.Factory.StartNew<Task<int>>(async () =>
{
await Task.Delay(1000);
return 42;
});
async
关键字需要返回Task
,Task<T>
或void
。阅读更多相关信息:async (C# Reference)。