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


CComObjectThreadModel

Вызывает соответствующие методы модели потока, независимо от используемой потоковой модели.

#if defined( _ATL_SINGLE_THREADED ) 
   typedef CComSingleThreadModel CComObjectThreadModel; 
#elif defined( _ATL_APARTMENT_THREADED ) 
   typedef CComSingleThreadModel CComObjectThreadModel; 
#elif defined( _ATL_FREE_THREADED ) 
   typedef CComMultiThreadModel CComObjectThreadModel; 
#else 
   #pragma message ("No global threading model defined") 
#endif

Заметки

В зависимости от потоковой модели, используемой приложением, имя CComObjectThreadModeltypedef ссылается либо на CComSingleThreadModel или CComMultiThreadModel. Эти классы предоставляют дополнительные имена typedef для ссылки на класс критической секции.

Примечание

CComObjectThreadModel не ссылается на класс CComMultiThreadModelNoCS.

Использование CComObjectThreadModel позволяет избежать указания конкретного класс потоковой модели. Независимо от используемого потоковой модели, будут Вызываются соответствующие методы.

В дополнение к CComObjectThreadModel библиотеки ATL предоставляет имя CComGlobalsThreadModeltypedef. Класс, ссылающегося на каждым зависит от typedef потоковая модель используется, как показано в следующей таблице:

typedef

Работа с потоками Единственной

Потоковая модель Подразделение

Свободная работа с потоками

CComObjectThreadModel

S

S

M

CComGlobalsThreadModel

S

M

M

S=CComSingleThreadModel; M=CComMultiThreadModel

Используйте CComObjectThreadModel в отдельный класс объектов. Используйте CComGlobalsThreadModel объекта или глобально доступ к программе или в тех случаях, когда необходимо защитить ресурсы модуля через несколько потоков.

Требования

Header: atlbase.h

См. также

Ссылки

CComObjectRootEx Class

Другие ресурсы

ATL Class Overview

ATL Typedefs