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ı
Veri Akışı Adı | Açıklama |
---|---|
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
Veri Akışı Adı | Açıklama |
---|---|
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 CComMultiThreadModelNoCS
kritik 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 ThreadModelNoCS
typedef
kullanırsınızCComMultiThreadModelNoCS
. Butypedef
, , CComMultiThreadModel
ve CComSingleThreadModel içinde CComMultiThreadModelNoCS
tanımlanır.
Not
CComObjectThreadModel ve CComGlobalsThreadModel genel typedef
adları öğesine başvurmazCComMultiThreadModelNoCS
.
öğesine ThreadModelNoCS
ek olarak ve CComMultiThreadModelNoCS
CriticalSection
tanı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ırkenCComMultiThreadModelNoCS
typedef
, 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 AutoCriticalSection
tanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından AutoCriticalSection
baş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 AutoCriticalSection
ek 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ırkenCComMultiThreadModelNoCS
typedef
, 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 CriticalSection
tanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından CriticalSection
baş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 CriticalSection
ek olarak adını AutoCriticalSection
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::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.
Dönüş 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.
Dönüş 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ırkenCComMultiThreadModelNoCS
typedef
, adı ThreadModelNoCS
yalnızca öğesine başvururCComMultiThreadModelNoCS
.
typedef CComMultiThreadModelNoCS ThreadModelNoCS;
Açıklamalar
CComMultiThreadModel ve CComSingleThreadModel de için ThreadModelNoCS
tanımlar içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ile tarafından ThreadModelNoCS
baş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 CComSingleThreadModel
ile CComMultiThreadModel
simetri sağladığını unutmayın. Örneğin, içindeki CComMultiThreadModel::AutoCriticalSection
örnek kodun aşağıdakileri typedef
bildirerek 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.