Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
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 CComMultiThreadModelNoCSkritik bir bölüm sınıfına başvurduğunda ve Lock gibi Unlock yöntemler hiçbir şey yapmaz.
Genellikle adı aracılığıyla CComMultiThreadModelNoCSThreadModelNoCS kullanırsınıztypedef. Butypedef, , CComMultiThreadModelNoCSve CComMultiThreadModel içinde tanımlanır.
Not
CComObjectThreadModelCComMultiThreadModelNoCS.
öğesine ThreadModelNoCSek olarak ve CComMultiThreadModelNoCSAutoCriticalSectiontanımlarCriticalSection. 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 CriticalSectiontypedefda kullanabilirsiniz. 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ı typedefda kullanabilirsinizAutoCriticalSection. 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ı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 ThreadModelNoCS tanımının CComMultiThreadModelNoCS ve CComMultiThreadModelile CComSingleThreadModel 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.