我有一个WCF服务,基本上只是这样做:
public SomeClass SomeMethod(){
using(var db = new LinqToSqlContext()){
return db.SomeMethod();
}
}
客户端它有自动生成的异步方法,但我只是想知道使服务本身使用异步任务是否有任何好处?完成所有方法完成后,它只能等待一个方法。
答案 0 :(得分:3)
简短回答:可能不是。
async
可以帮助更快,更远地进行WCF服务扩展,但如果您的后端只是一个SQL服务器(可能来自您的代码),那么即使是同步代码也可能比SQL服务器进一步扩展。
答案很长:在你双向完成并运行性能测试之前,你不会确定。
答案 1 :(得分:0)
如果该方法可以同时独立完成多个任务,那么使用Tasks异步运行它们可能会带来性能优势。
否则没有意义(由于多线程的开销,它甚至可能是负面影响)。