共用方式為


ATL 和無限制執行緒封送處理器

ATL 簡單物件精靈的 [屬性] 頁面提供一個選項,可讓您的類別匯總自由線程封送處理器 (FTM)。

精靈會產生程式代碼,以在 中 FinalConstruct 建立自由線程封送處理器的實例,並在 中 FinalRelease釋放該實例。 會自動將COM_INTERFACE_ENTRY_AGGREGATE巨集新增至 COM 對應,以確保QueryInterface免費線程封送處理器會處理 IMarshal 的要求

免費線程封送處理器可讓您從相同進程中的任何線程直接存取物件上的介面,以加速跨 Apartment 呼叫。 這個選項適用於使用兩個線程模型的類別。

使用此選項時,類別必須負責其數據的線程安全性。 此外,匯總免費線程封送處理器且需要使用從其他物件取得的介面指標的對象必須採取額外步驟,以確保介面已正確封送處理。 這通常牽涉到將介面指標儲存在全域介面數據表 (GIT) 中,並在每次使用時從 GIT 取得指標。 ATL 提供 CComGITPtr 類別,協助您使用儲存在 GIT 中的介面指標。

另請參閱

概念
CoCreateFreeThreadedMarshaler
IMarshal
使用全域介面數據表的時機
進程伺服器線程問題