我有一个WCF服务,本质上只是做到这一点的任何一点:它已经自动生成异步方法,但我只是想知道是否有任何好处有没有使这个服务异步
public SomeClass SomeMethod(){
using(var db = new LinqToSqlContext()){
return db.SomeMethod();
}
}
客户端使服务本身使用异步任务?当所有方法完成后,它只能等待一个方法。
我有一个WCF服务,本质上只是做到这一点的任何一点:它已经自动生成异步方法,但我只是想知道是否有任何好处有没有使这个服务异步
public SomeClass SomeMethod(){
using(var db = new LinqToSqlContext()){
return db.SomeMethod();
}
}
客户端使服务本身使用异步任务?当所有方法完成后,它只能等待一个方法。
简答:可能不是。
async
可以帮助WCF服务更快更远地扩展,但是如果您的后端只是单个SQL服务器(看起来像您的代码中那样),那么即使是同步代码也可能比您的SQL服务器进一步扩展。
长的答案:直到你完成这个任务并执行性能测试,你才会确定地知道。
如果该方法可以同时独立执行多个任务,那么可以通过使用任务异步运行它们来获得性能优势。
否则没有意义(甚至可能是由于多线程开销造成的负面影响)。
我们无法回答关于堆栈溢出的一般问题。考虑添加细节或去程序员。 – theMayer
我提供了一个例子,我在问一个异步方法是否会使所提供的示例受益,我不明白这个问题如何更具体。 – JoeS
这个问题的问题在于它不是关于编程,而是关于体系结构 - 而且似乎并没有被质疑的具体问题。 – theMayer