Поделиться через


Функция CoIncrementMTAUsage (combaseapi.h)

Поддержка MTA остается активной, если потоки MTA не запущены.

Синтаксис

HRESULT CoIncrementMTAUsage(
  [out] CO_MTA_USAGE_COOKIE *pCookie
);

Параметры

[out] pCookie

Адрес переменной PVOID , которая получает файл cookie для функции CoDecrementMTAUsage , или ЗНАЧЕНИЕ NULL в случае сбоя вызова.

Возвращаемое значение

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Функция CoIncrementMTAUsage позволяет клиентам создавать рабочие роли MTA и ждать их завершения перед выходом из процесса.

Функция CoIncrementMTAUsage гарантирует, что система не освобождает ресурсы, связанные с поддержкой MTA, даже если число потоков MTA равно 0.

При успешном выполнении вызовите CoDecrementMTAUsage только один раз. При сбое не вызывайте функцию CoDecrementMTAUsage .

Не вызывайте CoIncrementMTAUsage во время завершения процесса или внутри dllmain. Вы можете вызвать CoIncrementMTAUsage перед вызовом, чтобы начать процесс завершения работы.

Вы можете вызывать CoIncrementMTAUsage из одного потока и CoDecrementMTAUsage из другого, если файл cookie, ранее возвращенный CoIncrementMTAUsage , передается в CoDecrementMTAUsage.

CoIncrementMTAUsage создает MTA, если MTA еще не существует. CoIncrementMTAUsage помещает текущий поток в MTA, если текущий поток еще не находится в объекте

CoIncrementMTAUsage можно использовать в:

  • Вы хотите, чтобы сервер сохранял MTA в активном состоянии, даже если все рабочие потоки простаивают.
  • Реализация API требует инициализации COM, но не содержит сведений о том, находится ли текущий поток уже в отдельном объекте, и не требуется ли текущий поток для перехода в определенное подразделение.

Требования

Требование Значение
Целевая платформа Windows
Header combaseapi.h
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

CoDecrementMTAUsage