共用方式為


CComSingleThreadModel 類別

這個類別提供遞增和遞減變數值的方法。

語法

class CComSingleThreadModel

成員

公用 Typedefs

名稱 描述
CComSingleThreadModel::AutoCriticalSection 參考類別 CComFakeCriticalSection
CComSingleThreadModel::CriticalSection 參考類別 CComFakeCriticalSection
CComSingleThreadModel::ThreadModelNoCS 參考 CComSingleThreadModel

公用方法

名稱 描述
CComSingleThreadModel::D ecrement 遞減指定變數的值。 此實作不是安全線程。
CComSingleThreadModel::Increment 遞增指定變數的值。 此實作不是安全線程。

備註

CComSingleThreadModel 提供遞增和遞減變數值的方法。 不同於 CComMultiThreadModelCComMultiThreadModelNoCS,這些方法不是安全線程。

一般而言,您可以CComSingleThreadModel透過兩typedef個名稱之一使用 CComObjectThreadModel 或 CComGlobalsThreadModel。 所 typedef 參考的類別取決於所使用的線程模型,如下表所示:

typedef 單個線程模型 Apartment 線程模型 免費線程模型
CComObjectThreadModel S S
CComGlobalsThreadModel S

S= CComSingleThreadModel;M= CComMultiThreadModel

CComSingleThreadModel 本身會定義三 typedef 個名稱。 ThreadModelNoCS 參考 CComSingleThreadModelAutoCriticalSectionCriticalSection 參考類別 CComFakeCriticalSection,其提供與取得和釋放重要區段擁有權相關聯的空白方法。

需求

標頭: atlbase.h

CComSingleThreadModel::AutoCriticalSection

使用 CComSingleThreadModel時,typedef名稱AutoCriticalSection會參考 CComFakeCriticalSection 類別

typedef CComFakeCriticalSection AutoCriticalSection;

備註

因為 CComFakeCriticalSection 未提供重要區段,因此其方法不會執行任何動作。

CComMultiThreadModelCComMultiThreadModelNoCS 包含 的定義 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 未提供重要區段,因此其方法不會執行任何動作。

CComMultiThreadModelCComMultiThreadModelNoCS 包含 的定義 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;

備註

CComMultiThreadModelCComMultiThreadModelNoCS 包含 的定義 ThreadModelNoCS。 下表顯示線程模型類別與 所 ThreadModelNoCS參考類別之間的關聯性:

中定義的類別 參考的類別
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

範例

請參閱 CComMultiThreadModel::AutoCriticalSection

另請參閱

類別概觀