2010-06-15 31 views
2

我有被定义为ConcurrencyMode.Single服务:我怎样才能使一个单一的WCF方法ConcurrencyMode.Multiple当服务ConcurencyMode.Single

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, 
    UseSynchronizationContext = false, 
    InstanceContextMode = InstanceContextMode.PerSession, 
    IncludeExceptionDetailInFaults = true)] 
public class MyService : IMyService 

该服务提供了一种方法来告诉客户什么是目前的工作:

[OperationContract] 
    string GetCurrentTaskDescription(); 

有没有办法让这个特别的方法允许而另一个长时间运行的任务运行的所有其他方法仍然沿用单线程并发模型?

回答

4

您不能使方法具有实例上下文模式。

如果您确实需要单线程的一组调用和一个多线程的调用,您需要为此调用创建一个新的服务合约。

+3

或使整个服务多线程和手动同步所有其他方法 – Vitalik 2010-06-15 23:34:34

+0

这是一个很好的观点。我想尽管如此,开发者仍然有责任去解决这个问题。 – Spence 2010-06-16 00:47:01

相关问题