CallbackBehaviorAttribute.ConcurrencyMode 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定服務是支援單一執行緒、多重執行緒或可重新進入的呼叫。
public:
property System::ServiceModel::ConcurrencyMode ConcurrencyMode { System::ServiceModel::ConcurrencyMode get(); void set(System::ServiceModel::ConcurrencyMode value); };
public System.ServiceModel.ConcurrencyMode ConcurrencyMode { get; set; }
member this.ConcurrencyMode : System.ServiceModel.ConcurrencyMode with get, set
Public Property ConcurrencyMode As ConcurrencyMode
屬性值
其中一個 ConcurrencyMode 值,預設值為 Single。
例外狀況
該值不是其中一個 ConcurrencyMode 值。
備註
這個屬性會指出回呼物件的執行個體是支援單一執行緒或同時執行的多重執行緒,以及在遇到單一執行緒時,是否會支援重新進入。
將 ConcurrencyMode 設定為 Single,便會指示系統要將服務的執行個體限制為一次執行一個執行緒,這樣您就不需要處理執行緒問題。 這是預設值。 值為 Multiple 時,表示服務物件可在任何時間由多個執行緒執行。 在這種情況下,您必須確定執行緒安全和狀態一致性。
Reentrant 也會限制一次對單一線程的存取。 然而,它允許從執行中的服務方法對外呼叫,以便傳回並重新進入執行中的服務。 可重新進入的呼叫會在不同的 Managed 執行緒上執行,不過在這種情況中,原始執行緒在可重新進入呼叫期間會遭到封鎖。
一般來說,如果違反其並行模式的執行個體有訊息到達,該訊息會等到執行個體可供使用為止,或等到它逾時為止。
此外,如果 ConcurrencyMode 設定為 Single,且可重新進入的呼叫在等待釋放執行個體時遭到封鎖,系統就會偵測到此死結並擲回例外狀況。
如需並行的詳細資訊,請參閱 ServiceBehaviorAttribute.ConcurrencyMode 和 會話、實例和並行。