共用方式為


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 參考 CComSingleThreadModelAutoCriticalSectionCriticalSection 參考類別 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

另請參閱

類別概觀