這個類別提供遞增和遞減變數值的方法。
語法
class CComSingleThreadModel
成員
公用 Typedefs
| 名稱 | 描述 |
|---|---|
| CComSingleThreadModel::AutoCriticalSection | 參考類別 CComFakeCriticalSection。 |
| CComSingleThreadModel::CriticalSection | 參考類別 CComFakeCriticalSection。 |
| CComSingleThreadModel::ThreadModelNoCS | 參考 CComSingleThreadModel。 |
公用方法
| 名稱 | 描述 |
|---|---|
| CComSingleThreadModel::D ecrement | 遞減指定變數的值。 此實作不是安全線程。 |
| CComSingleThreadModel::Increment | 遞增指定變數的值。 此實作不是安全線程。 |
備註
CComSingleThreadModel 提供遞增和遞減變數值的方法。 不同於 CComMultiThreadModel 和 CComMultiThreadModelNoCS,這些方法不是安全線程。
一般而言,您可以CComSingleThreadModel透過兩typedef個名稱之一使用 CComObjectThreadModel 或 CComGlobalsThreadModel。 所 typedef 參考的類別取決於所使用的線程模型,如下表所示:
| typedef | 單個線程模型 | Apartment 線程模型 | 免費線程模型 |
|---|---|---|---|
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。