gpt4 book ai didi

c# - 最佳实践 - 警告 : method lacks 'await' operator warning

转载 作者:行者123 更新时间:2023-11-30 13:54:18 26 4
gpt4 key购买 nike

是的,我知道还有其他问题可以涵盖此警告的含义以及如何解决它,但是,我有一个关于异步编程最佳实践的问题。

我有一个服务层来处理数据层和表示层之间的数据传输。该服务包含多个查询数据库并返回结果的方法。

我一直在尝试尽可能使用异步编程。一个例子:

    public async Task<SiteTemplateResource[]> GetResources(int siteTemplateId, string extension)
{
return await Database.FindBy<SiteTemplateResource>(str => str.SiteTemplateId == siteTemplateId && str.HashedFile.EndsWith(extension)).ToArrayAsync();
}

我的问题是,除了 ToArrayAsync 调用外,我实际上并没有等待任何东西,我真的不需要它。

我应该继续使用 async/await 吗?例如,我将如何等待此功能的任何内容:

    public async Task<int> SiteTemplateBySiteIdAsync(int siteId)
{
return Database.First<SiteSiteTemplate>(sst => sst.SiteId == siteId).SiteTemplateId;
}

我在那个函数中没有等待任何东西,但我也不需要调用 ToArrayAsync,那么在上述情况下如何避免警告“方法缺少‘await’运算符”?

提前致谢。

最佳答案

如果你没事await在需要 async 的方法中(无论出于何种原因),您可以使用 Task.FromResult ,可以等待:

public async Task<int> SiteTemplateBySiteIdAsync(int siteId)
{
return await Task.FromResult(Database.First<SiteSiteTemplate>(sst => sst.SiteId == siteId).SiteTemplateId);
}

如果您不需要 async方法,你可以简单地更多 async Task<int>并将其替换为 int .

关于c# - 最佳实践 - 警告 : method lacks 'await' operator warning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43996056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com