【问题标题】:Return Task<int> from int member C# best practice从 int 成员 C# 最佳实践返回 Task<int>
【发布时间】:2013-07-17 23:41:45
【问题描述】:

我的班级中有一个 int 类型的成员。
我想用返回此成员的 Task 函数公开该类。

int _someMember;

我知道我能做到:

public int ReturnTheMember() { return _someMember; }

但是我所有的类函数都必须是基于任务的。

是否可以将此调用包装在任务中?类似:

    public async Task<int> ReturnTheMember()
    {
        await Task.FromResult(0);
        return _someMember;
    }

注意 - 我必须执行 Task.FromResult(0) 因为我将警告视为错误 - 这不会编译,因为签名异步的方法必须包含“等待”。

我想知道这是否是我使用的好模式。或者这样做是错误的。

【问题讨论】:

  • 这是一个荒谬的想法。如果结果立即可用,为什么需要它返回Task&lt;int&gt;
  • @newStackExchangeInstance:可能是为了满足一个接口。
  • 这是 SDK,我所有的 SDK 调用都必须是异步的。现在我立即返回它,但一周后我可能会去一些 SQL 数据库并从那里提取 int .. 我不想阻止我亲爱的 sdk 消费者

标签: c# async-await


【解决方案1】:

你根本不需要async

只需创建一个普通方法并调用Task.FromResult() 即可使用您的结果创建一个同步解决的任务。

【讨论】:

  • 明确:public Task&lt;int&gt; ReturnTheMember() { return Task.FromResult(_someMember); }
  • @StephenCleary 确实。
猜你喜欢
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 2012-07-20
相关资源
最近更新 更多