【问题标题】:await operator can only be used with async methods?await 运算符只能与异步方法一起使用吗?
【发布时间】:2019-01-21 14:34:21
【问题描述】:

您好,我创建了一个异步方法是 c# 来从 VSTS 获取所有项目。

这是防御的样子

public async Task<string> GetProjects()
{
    try
    {
        return r;
    }
    catch
    {
        return "";
    }
}

但是当我尝试从中获取返回值时,它说 await 运算符只能与 Async 方法一起使用。我不理解它,因为我是这些 async 和 await 方法的新手。我尝试访问的方式是这样的

字符串 s;

s=await GetProjects();

【问题讨论】:

  • 你可能会在非异步方法中使用s=await GetProjects();。您只能在 async 方法中使用 await
  • 感谢@MikeKaskun 指点我。是的,我的不是异步方法,我不知道调用函数也必须是异步的。

标签: c# async-await


【解决方案1】:

如果你迫切需要一个异步方法,你可以这样做:

return Task.FromResult("");

但是,您真的应该按照@PeterBons 的建议阅读this

【讨论】:

    【解决方案2】:

    如果您的方法使用await,则必须将其标记为async。 你可以在这里阅读原因:https://blogs.msdn.microsoft.com/ericlippert/2010/11/11/asynchrony-in-c-5-part-six-whither-async/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2014-11-04
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      相关资源
      最近更新 更多