2010-06-15 33 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

相關問題