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

另請參閱

CoDecrementMTAUsage