coIncrementMTAUsage 函式 (combaseapi.h)
當沒有執行 MTA 線程時,讓 MTA 支援保持作用中。
語法
HRESULT CoIncrementMTAUsage(
[out] CO_MTA_USAGE_COOKIE *pCookie
);
參數
[out] pCookie
接收 CoDecrementMTAUsage 函式 Cookie 的 PVOID 變數位址,如果呼叫失敗,則為 NULL。
傳回值
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
CoIncrementMTAUsage 函式可讓用戶端建立 MTA 背景工作角色,並在結束程式之前等候它們完成。
CoIncrementMTAUsage 函式可確保系統不會釋放與 MTA 支援相關的資源。即使 MTA 線程計數變成 0 也一樣。
成功時,請只呼叫 CoDecrementMTAUsage 一次。 失敗時,請勿呼叫 CoDecrementMTAUsage 函 式。
請勿在進程關機期間或 dllmain 內呼叫 CoIncrementMTAUsage 。 您可以在呼叫開始關機程式之前呼叫 CoIncrementMTAUsage 。
只要 CoIncrementMTAUsage 先前由 CoIncrementMTAUsage 傳遞至 CoDecrementMTAUsage,您就可以從另一個線程呼叫 CoIncrementMTAUsage。
如果 MTA 不存在,CoIncrementMTAUsage 會建立 MTA。 CoIncrementMTAUsage 會將目前的線程放入 MTA,如果目前的線程尚未在 Apartment 中
您可以在下列情況下使用 CoIncrementMTAUsage :
- 即使所有背景工作線程都處於閑置狀態,您仍希望伺服器讓 MTA 保持運作。
- 您的 API 實作需要初始化 COM,但沒有任何關於目前線程是否已在 Apartment 中的資訊,而且不需要目前的線程進入特定的 Apartment。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | combaseapi.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |