CComSingleThreadModel 類別
這個類別提供遞增和遞減變數值的方法。
語法
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。