使这项服务异步是否有任何意义

时间:2016-02-23 21:26:24

标签: c# wcf asynchronous

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

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

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

2 个答案:

答案 0 :(得分:3)

简短回答:可能不是。

async可以帮助更快,更远地进行WCF服务扩展,但如果您的后端只是一个SQL服务器(可能来自您的代码),那么即使是同步代码也可能比SQL服务器进一步扩展。

答案很长:在你双向完成并运行性能测试之前,你不会确定。

答案 1 :(得分:0)

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

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