Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс предоставляет методы для увеличения и уменьшения значения переменной.
Синтаксис
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
При использовании CComSingleThreadModeltypedef имя 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
При использовании CComSingleThreadModeltypedef имя 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
При использовании CComSingleThreadModeltypedef имя ThreadModelNoCS просто ссылаетсяCComSingleThreadModel.
typedef CComSingleThreadModel ThreadModelNoCS;
Замечания
CComMultiThreadModel и CComMultiThreadModelNoCS содержат определения ThreadModelNoCS. В следующей таблице показана связь между классом модели потоков и классом, ThreadModelNoCSна который ссылается:
| Класс, определенный в | Класс, на который ссылается |
|---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Пример
См. раздел CComMultiThreadModel::AutoCriticalSection.