3

我写了下面的代码,

Task.Factory.StartNew<int>(async () =>
        {
            await Task.Delay(1000);
            return 42;
        });

但是 read 行出现在“async”关键字下,并且由于某些语法错误而无法编译代码,有人可以告诉我该怎么做吗?

多谢!

4

2 回答 2

5

您可能想要使用Task.Run,它具有更自然的asynclambda 语法:

var task = Task.Run(async () =>
{
  await Task.Delay(1000);
  return 42;
});
于 2012-10-22T14:33:26.600 回答
2

您必须返回 a Task<T>,如下所示:

Task.Factory.StartNew<Task<int>>(async () =>
{
    await Task.Delay(1000);
    return 42;
});

关键字需要async返回,Task或。阅读有关它的更多信息:异步(C# 参考)Task<T>void

于 2012-10-22T14:19:58.147 回答