当服务是ConcurencyMode.Single时,如何制作单个WCF方法ConcurrencyMode.Multiple

时间:2010-06-15 22:00:38

标签: c# wcf multithreading

我有一个定义为ConcurrencyMode.Single的服务:

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

此服务提供了一种告诉客户当前正在处理的内容的方法:

    [OperationContract]
    string GetCurrentTaskDescription();

有没有办法让这个特定方法允许,而另一个长时间运行的任务正在运行,而所有其他方法仍然遵循单线程并发模型?

1 个答案:

答案 0 :(得分:4)

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

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