2016-02-23 29 views
-3

我有一个WCF服务,本质上只是做到这一点的任何一点:它已经自动生成异步方法,但我只是想知道是否有任何好处有没有使这个服务异步

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

客户端使服务本身使用异步任务?当所有方法完成后,它只能等待一个方法。

+0

我们无法回答关于堆栈溢出的一般问题。考虑添加细节或去程序员。 – theMayer

+0

我提供了一个例子,我在问一个异步方法是否会使所提供的示例受益,我不明白这个问题如何更具体。 – JoeS

+0

这个问题的问题在于它不是关于编程,而是关于体系结构 - 而且似乎并没有被质疑的具体问题。 – theMayer

回答

3

简答:可能不是。

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

长的答案:直到你完成这个任务并执行性能测试,你才会确定地知道。

0

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

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

相关问题