【发布时间】:2012-09-29 03:07:35
【问题描述】:
我有一个为 WCF 服务启动主机的 Windows 服务。我有一个定义 ServiceContract 和 OperationContracts 的接口。有一个类实现了这个接口。 ServiceBehavior 属性是 PerSession。据我了解,每个会话在 WCF 服务上都有自己的类实例。
[ServiceBehavior(InstanceContextMode = ServiceModel.InstanceContextMode.PerSession)]
public class WCFServiceImplementation : WCFServiceInterface
{
}
现在在我的WCFServiceImplementation 的某个地方我正在调用Threading.Thread.Sleep(1000)(有一些竞争条件)。我的问题 - 当线程处于睡眠状态时,其他客户端仍然可以调用该服务吗?我对线程不是很熟悉,每个类实例是否使用 WCF 服务在自己的单独线程上运行。
【问题讨论】:
-
Thread.Sleep 永远不是竞争条件的答案...
-
@jeroenh 我本来想避免的,但我需要与不受我的代码控制的外部应用程序通信。
-
您能否添加一些有关您与 3rd 方应用程序通信的详细信息,也许我们可以提供更好的解决方案。