【问题标题】:.net 4.5 async syntax.net 4.5 异步语法
【发布时间】:2013-07-14 09:49:15
【问题描述】:

我写了下面的代码,

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

但是读取的行出现在“async”关键字下,由于一些语法错误导致代码无法编译,谁能告诉我该怎么做?

非常感谢!

【问题讨论】:

    标签: .net-4.5 async-await


    【解决方案1】:

    您可能想使用Task.Run,它对于async lambdas 具有更自然的语法:

    var task = Task.Run(async () =>
    {
      await Task.Delay(1000);
      return 42;
    });
    

    【讨论】:

      【解决方案2】:

      你必须返回一个Task&lt;T&gt;,像这样:

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

      async 关键字需要返回 TaskTask&lt;T&gt;void。阅读更多相关信息:async (C# Reference)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-21
        • 2015-02-28
        • 2014-12-09
        相关资源
        最近更新 更多