共用方式為


COM+ 同步處理概念

一般而言,當您有單個線程 Apartment (STA) 時,不需要同步處理,因為 Apartment 會為您提供同步處理。 當您擁有多執行緒 Apartment(MTA)和自由執行緒物件時,同步會變得很重要。 在過去,自由線程對象必須處理鎖定。 您可以藉由設定元件的同步處理屬性來消除使用鎖定的需求。

同步處理具有下列屬性:

  • 允許一個呼叫端一次輸入元件。
  • 禁止跨流程或跨電腦流動。
  • 在過程內從一個元件流向另一個元件。
  • 允許從相同的呼叫端重新進入。

不同於公寓,活動橫跨多個進程和主機的上下文。 同步處理會決定哪個活動將包含物件。 物件可以位於下列任何一個活動中:

  • 創作者的活動
  • 新增活動
  • 沒有活動

COM+ 透過為每個活動設置一系列鎖來確保並發性。 如果呼叫端嘗試輸入另一個呼叫端已使用的 COM+ 同步處理元件,則會封鎖呼叫,直到鎖定釋放為止。 此鎖定阻塞行為將不會逾時,且不可設定成逾時。如果鎖未被使用,則會取得該鎖並處理呼叫。 完成之後,系統會釋放鎖定,允許下一個呼叫者進行操作。 為了防止死結,COM+ 會透過整個網路鏈結的巢狀呼叫系列,管理跨活動的所有物件的存取。

COM+ 提供下列同步處理設定:

  • 禁用
  • 不支援
  • 支援
  • 必填
  • 需要新的

注意

某些同步處理設定與其他 COM+ 元件設定搭配運作。 例如,如果啟用 COM+ 即時 (JIT) 啟動 服務,則需要同步處理。 如果您啟用交易,則需要 JIT;因此,COM+ 事務處理 也需要同步處理。 因此,具有 JIT=True 設定的類別也必須具有 Synchronization=Required 或 Synchronization=RequiresNew 的設定。

 

如需使用元件服務系統管理工具設定同步處理選項的指示,請參閱 設定同步處理屬性

若要取得使用 COM+ 系統管理連結庫來設定同步處理選項的詳細資訊,請參閱 自動化 COM+ 系統管理

COM+ 同步任務