Aracılığıyla paylaş


CComMultiThreadModelNoCS Sınıfı

CComMultiThreadModelNoCS kritik bölüm kilitleme veya işlevselliğin kilidini açmadan değişkenin değerini artırmaya ve azaltmaya yönelik iş parçacığı açısından güvenli yöntemler sağlar.

Sözdizimi

class CComMultiThreadModelNoCS

Üyeler

Genel Tür Tanımları

Ad Tanım
CComMultiThreadModelNoCS::AutoCriticalSection CComFakeCriticalSection sınıfına başvurur.
CComMultiThreadModelNoCS::CriticalSection Başvurular sınıfı CComFakeCriticalSection.
CComMultiThreadModelNoCS::ThreadModelNoCS Başvurular sınıfı CComMultiThreadModelNoCS.

Genel Yöntemler

Ad Tanım
CComMultiThreadModelNoCS::D ecrement (Statik) Belirtilen değişkenin değerini iş parçacığı güvenli bir şekilde azaltma.
CComMultiThreadModelNoCS::Increment (Statik) Belirtilen değişkenin değerini iş parçacığı güvenli bir şekilde artırır.

Açıklamalar

CComMultiThreadModelNoCS , bir değişkeni artırmaya ve azaltmaya yönelik iş parçacığı güvenli yöntemler sağladığı için CComMultiThreadModel'e benzer. Ancak, aracılığıyla CComMultiThreadModelNoCSkritik bir bölüm sınıfına başvurduğunda ve Unlock gibi Lock yöntemler hiçbir şey yapmaz.

Genellikle adı aracılığıyla ThreadModelNoCStypedef kullanırsınızCComMultiThreadModelNoCS. Butypedef, , CComMultiThreadModelve CComSingleThreadModel içinde CComMultiThreadModelNoCStanımlanır.

Dekont

CComObjectThreadModel ve CComGlobalsThreadModel genel typedef adları öğesine başvurmazCComMultiThreadModelNoCS.

öğesine ThreadModelNoCSek olarak ve CComMultiThreadModelNoCSCriticalSectiontanımlarAutoCriticalSection. Bu ikinci iki typedef ad CComFakeCriticalSection'a başvurur. Bu, kritik bir bölümün alınması ve serbest bırakılmasıyla ilişkili boş yöntemler sağlar.

Gereksinimler

Üst bilgi: atlbase.h

CComMultiThreadModelNoCS::AutoCriticalSection

kullanırkenCComMultiThreadModelNoCStypedef, ad AutoCriticalSection CComFakeCriticalSection sınıfına başvurur.

typedef CComFakeCriticalSection AutoCriticalSection;

Açıklamalar

CComFakeCriticalSection Kritik bir bölüm sağlamadığından yöntemleri hiçbir şey yapmaz.

CComMultiThreadModel ve CComSingleThreadModel de için AutoCriticalSectiontanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından AutoCriticalSectionbaşvuruda bulunan kritik bölüm sınıfı arasındaki ilişki gösterilmektedir:

öğesinde tanımlanan sınıf Başvurulan sınıf
CComMultiThreadModelNoCS CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComSingleThreadModel CComFakeCriticalSection

'a AutoCriticalSectionek olarak CriticalSection adını da kullanabilirsiniztypedef. CRT başlangıç kodunu ortadan kaldırmak istiyorsanız genel nesnelerde veya statik sınıf üyelerinde belirtmemelisiniz AutoCriticalSection .

Örnek

Bkz . CComMultiThreadModel::AutoCriticalSection.

CComMultiThreadModelNoCS::CriticalSection

kullanırkenCComMultiThreadModelNoCStypedef, ad CriticalSection CComFakeCriticalSection sınıfına başvurur.

typedef CComFakeCriticalSection CriticalSection;

Açıklamalar

CComFakeCriticalSection Kritik bir bölüm sağlamadığından yöntemleri hiçbir şey yapmaz.

CComMultiThreadModel ve CComSingleThreadModel de için CriticalSectiontanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından CriticalSectionbaşvuruda bulunan kritik bölüm sınıfı arasındaki ilişki gösterilmektedir:

öğesinde tanımlanan sınıf Başvurulan sınıf
CComMultiThreadModelNoCS CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection

öğesine CriticalSectionek olarak adını AutoCriticalSectionda kullanabilirsiniztypedef. CRT başlangıç kodunu ortadan kaldırmak istiyorsanız genel nesnelerde veya statik sınıf üyelerinde belirtmemelisiniz AutoCriticalSection .

Örnek

Bkz . CComMultiThreadModel::AutoCriticalSection.

CComMultiThreadModelNoCS::D ecrement

Bu statik işlev, p ile işaret edilen değişkenin değerini azalan InterlockedDecrement Win32 işlevini çağırır.

static ULONG WINAPI Decrement(LPLONG p) throw();

Parametreler

P
[in] Azaltılacak değişkenin işaretçisi.

İade Değeri

Azaltmanın sonucu 0 ise, Decrement 0 döndürür. Azaltmanın sonucu sıfır değilse, dönüş değeri de sıfır olmayandır, ancak azaltmanın sonucuna eşit olmayabilir.

Açıklamalar

InterlockedDecrement , birden fazla iş parçacığının aynı anda bu değişkeni kullanmasını engeller.

CComMultiThreadModelNoCS::Increment

Bu statik işlev, işaret edilen değişkenin değerini p ile artıran InterlockedIncrement Win32 işlevini çağırır.

static ULONG WINAPI Increment(LPLONG p) throw();

Parametreler

P
[in] Artırılacak değişken işaretçisi.

İade Değeri

Artışın sonucu 0 ise, Artım 0 döndürür. Artışın sonucu sıfır değilse, dönüş değeri de sıfırdan farklı olur, ancak artışın sonucuna eşit olmayabilir.

Açıklamalar

InterlockedIncrement , birden fazla iş parçacığının aynı anda bu değişkeni kullanmasını engeller.

CComMultiThreadModelNoCS::ThreadModelNoCS

kullanırkenCComMultiThreadModelNoCStypedef, adı ThreadModelNoCS yalnızca öğesine başvururCComMultiThreadModelNoCS.

typedef CComMultiThreadModelNoCS ThreadModelNoCS;

Açıklamalar

CComMultiThreadModel ve CComSingleThreadModel de için ThreadModelNoCStanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından ThreadModelNoCSbaşvuruda bulunan sınıf arasındaki ilişki gösterilmektedir:

öğesinde tanımlanan sınıf Başvurulan sınıf
CComMultiThreadModelNoCS CComMultiThreadModelNoCS
CComMultiThreadModel CComMultiThreadModelNoCS
CComSingleThreadModel CComSingleThreadModel

öğesinin CComMultiThreadModelNoCS tanımının ThreadModelNoCS ve CComSingleThreadModelile CComMultiThreadModel simetri sağladığını unutmayın. Örneğin, içindeki CComMultiThreadModel::AutoCriticalSection örnek kodun aşağıdakileri typedefbildirerek olduğunu varsayalım:

typedef typename ThreadModel::ThreadModelNoCS _ThreadModel;

için ThreadModel belirtilen sınıf ne olursa olsun (örneğin CComMultiThreadModelNoCS), _ThreadModel buna göre çözümür.

Örnek

Bkz . CComMultiThreadModel::AutoCriticalSection.

Ayrıca bkz.

Sınıfa Genel Bakış