Класс CComSingleThreadModel
Этот класс предоставляет методы для увеличения и уменьшения значения переменной.
Синтаксис
class CComSingleThreadModel
Участники
Общедоступные определения типов
Имя | Описание |
---|---|
CComSingleThreadModel::AutoCriticalSection | Ссылается на класс CComFakeCriticalSection. |
CComSingleThreadModel::CriticalSection | Ссылается на класс CComFakeCriticalSection . |
CComSingleThreadModel::ThreadModelNoCS | Ссылки CComSingleThreadModel . |
Открытые методы
Имя | Описание |
---|---|
CComSingleThreadModel::D ecrement | Уменьшает значение указанной переменной. Эта реализация не является потокобезопасной. |
CComSingleThreadModel::Increment | Увеличивает значение указанной переменной. Эта реализация не является потокобезопасной. |
Замечания
CComSingleThreadModel
предоставляет методы для увеличения и уменьшения значения переменной. В отличие от CComMultiThreadModel и CComMultiThreadModelNoCS, эти методы не являются потокобезопасными.
Как правило, используется CComSingleThreadModel
один из двух typedef
имен: CComObjectThreadModel или CComGlobalsThreadModel. Класс, на который ссылается каждый из них typedef
, зависит от используемой модели потоков, как показано в следующей таблице:
typedef | Модель однопотоковой | Модель потоков квартиры | Модель свободного потока |
---|---|---|---|
CComObjectThreadModel |
S | S | Пн. |
CComGlobalsThreadModel |
S | Пн. | Пн. |
S= CComSingleThreadModel
; M= CComMultiThreadModel
CComSingleThreadModel
сам определяет три typedef
имена. ThreadModelNoCS
ссылки CComSingleThreadModel
. AutoCriticalSection
и CriticalSection
ссылочный класс CComFakeCriticalSection, который предоставляет пустые методы, связанные с получением и освобождением владения критически важным разделом.
Требования
Заголовок: atlbase.h
CComSingleThreadModel::AutoCriticalSection
При использовании CComSingleThreadModel
typedef
имя AutoCriticalSection
ссылается на класс CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Замечания
Так как CComFakeCriticalSection
не предоставляет критически важный раздел, его методы ничего не делают.
CComMultiThreadModel и CComMultiThreadModelNoCS содержат определения AutoCriticalSection
. В следующей таблице показана связь между классом модели потоков и критическим классом разделов, AutoCriticalSection
на который ссылается:
Класс, определенный в | Класс, на который ссылается |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Кроме того AutoCriticalSection
, можно использовать typedef
имя CriticalSection. Если вы хотите исключить код запуска CRT, не следует указывать AutoCriticalSection
в глобальных объектах или статических элементах класса.
Пример
См. раздел CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
При использовании CComSingleThreadModel
typedef
имя CriticalSection
ссылается на класс CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Замечания
Так как CComFakeCriticalSection
не предоставляет критически важный раздел, его методы ничего не делают.
CComMultiThreadModel и CComMultiThreadModelNoCS содержат определения CriticalSection
. В следующей таблице показана связь между классом модели потоков и критическим классом разделов, CriticalSection
на который ссылается:
Класс, определенный в | Класс, на который ссылается |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Кроме того CriticalSection
, можно использовать typedef
имя AutoCriticalSection. Если вы хотите исключить код запуска CRT, не следует указывать AutoCriticalSection
в глобальных объектах или статических элементах класса.
Пример
См. раздел CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Эта статическую функцию уменьшает значение переменной, на которую указывает p.
static ULONG WINAPI Decrement(LPLONG p) throw();
Параметры
p
[in] Указатель на переменную для уменьшения.
Возвращаемое значение
Результат уменьшения.
CComSingleThreadModel::Increment
Эта статтическая функция увеличивает значение переменной, на которую указывает p.
static ULONG WINAPI Increment(LPLONG p) throw();
Параметры
p
[in] Указатель на переменную для увеличения.
Возвращаемое значение
Результат увеличения.
CComSingleThreadModel::ThreadModelNoCS
При использовании CComSingleThreadModel
typedef
имя ThreadModelNoCS
просто ссылаетсяCComSingleThreadModel
.
typedef CComSingleThreadModel ThreadModelNoCS;
Замечания
CComMultiThreadModel и CComMultiThreadModelNoCS содержат определения ThreadModelNoCS
. В следующей таблице показана связь между классом модели потоков и классом, ThreadModelNoCS
на который ссылается:
Класс, определенный в | Класс, на который ссылается |
---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Пример
См. раздел CComMultiThreadModel::AutoCriticalSection.