# if определены (_ATL_SINGLE_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
# elif определены (_ATL_APARTMENT_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
# else
typedef CComMultiThreadModel CComObjectThreadModel;
# endif
В зависимости от модели потоков, используемые вашим приложением имя typedef CComObjectThreadModel ссылается на CComSingleThreadModel или CComMultiThreadModel. Эти классы предоставляют дополнительные typedef имена для ссылки на класс критической секции.
Примечаниеnbsp;CComObjectThreadModel не ссылается класс CComMultiThreadModel&NoCS.
С помощью CComObjectThreadModel освобождает вас от указания конкретного класса потоковой модели. Независимо от используемой модели потоков будет вызван соответствующие методы.
В дополнение к CComObjectThreadModelATL предоставляет имя typedef CComGlobalsThreadModel. Класс, на который ссылается каждой typedef зависит потоковая модель, используемая, как показано в следующей таблице:
| Потоковая модель | |||
| typedef | Один | Квартира | Свободный |
| CcomObjectThreadModel | S | S | M |
| CcomGlobalsThreadModel | S | M | M |
S =CComSingleThreadModel; M =CComMultiThreadModel
Используйте CComObjectThreadModel в пределах одного объекта класса. Использование CComGlobalsThreadModel в объект, либо глобально доступной для вашей программы, или когда вы хотите защитить модуль ресурсов между несколькими потоками.
# include lt;atlbase.h>
См. также CComObjectRootEx