WCF。 ConcurrencyMode.Multiple的开销

时间:2010-06-30 13:58:39

标签: .net wcf concurrency overhead

我有一个同步使用的WCF服务,但它的ConcurrencyMode设置为ConcurrencyMode.Multiple值,因为该服务实际上是无状态的。这种模式会产生多少开销?将模式更改为ConcurrencyMode.Single是否有意义?

1 个答案:

答案 0 :(得分:3)

它并没有真正强加任何开销 - 除了单个服务实例必须处理并发访问这一事实,它必须是200%线程安全的 - 这是相当棘手的编程。

切换到ConcurrencyMode.Single使编程变得更简单 - 不再担心服务类中的并发性。但它将所有请求序列化 - 一次只能处理一个请求,因此很快就会成为性能瓶颈。

你提到你的服务是无国籍的 - 所以为什么不让它使用通常商定的最佳实践 - 不是单身,而是常规的“每次通话”服务类。在那种模式下,每个请求都会得到一个新的服务类实例,不需要多线程编程(所有多线程都由WCF运行时处理),你可以同时处理多个请求 - 对我而言,这只是一个好处,没有缺点!

相关问题