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 | M |
CComGlobalsThreadModel |
S | M | M |
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 。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應