【问题标题】:Is there any point in making this service asynchronous [closed]使这项服务异步有什么意义[关闭]
【发布时间】:2016-02-23 21:26:23
【问题描述】:

我有一个 WCF 服务,它基本上就是这样做的:

public SomeClass SomeMethod(){
  using(var db = new LinqToSqlContext()){
       return db.SomeMethod();
  }
}

客户端它具有自动生成的异步方法,但我只是想知道使服务本身使用异步任务是否有任何好处?在所有方法完成后,它只能等待一个方法。

【问题讨论】:

  • 我们无法回答有关堆栈溢出的一般问题。考虑添加细节或去找程序员。
  • 我提供了一个示例,我问的是异步方法是否有利于提供的示例,我看不出这个问题如何更具体。
  • 这个问题的问题在于它不是关于编程,而是关于架构——而且似乎没有具体问题被质疑。

标签: c# wcf asynchronous


【解决方案1】:

简短的回答:可能不会。

async 可以帮助 WCF 服务扩展得更快、更远,但如果您的后端只是单个 SQL 服务器(从您的代码看来很可能),那么即使是同步代码也可能比您的 SQL 服务器扩展得更远。

长答案:在你同时做这两种方法并运行性能测试之前,你不会确定。

【讨论】:

    【解决方案2】:

    如果该方法可以同时独立执行多个任务,那么使用 Tasks 异步运行它们可能会带来性能优势。

    否则没有意义(甚至可能由于多线程的开销而产生负面影响)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      相关资源
      最近更新 更多