typeDef CComAutoCriticalSection AutoCriticalSection;
Açıklamalar
Typedef adı AutoCriticalSection CComMultiThreadModelkullanırken, sınıf yöntemleri alınıyor ve bir kritik bölüm nesnesinin sahipliğini serbest sağlayan CComAutoCriticalSection, başvuran.
CComSingleThreadModel ve CComMultiThreadModelNoCS da AutoCriticalSectiontanımlarını içerir. Aşağıdaki tabloda, iş parçacığı modeli sınıfı ve AutoCriticalSection kritik bölümü sınıf gönderimli arasındaki ilişkiyi gösterir:
| Tanımlanan sınıf | Başvurulan sınıf |
| CComMultiThreadModel | CComCriticalSection |
| CComSingleThreadModel | CComFakeCriticalSection |
| CComMultiThreadModelNoCS | CComFakeCriticalSection |
AutoCriticalSectionek olarak, sen-ebilmek kullanma typedef adı CriticalSection. crt başlatma kodunu ortadan kaldırmak istiyorsanız, AutoCriticalSection genel nesneler veya statik sınıf üyeleri belirtmemeniz gerekir.
Örnek
Aşağıdaki kod CComObjectRootEx alınmıştır.
templatelt; ThreadModel sınıfı >
CComObjectRootEx sınıfı: Genel CComObjectRootBase
{
public:
TypeDef ThreadModel _ThreadModel;
TypeDef _ThreadModel::AutoCriticalSection _CritSec;
ulong InternalAddRef)
{
...
return _ThreadModel::Increment(&m_dwRef);
}
...
void (Lock) {m_critsec.Kilit (;): }
...
Özel:
_CritSec m_critsec;
}
Aşağıdaki tablolarda ThreadModel şablon parametresi ve uygulama tarafından kullanılan iş parçacığı modeli bağlı olarak InternalAddRef ve kilit yöntemlerden sonuçlarını göstermek:
ThreadModel = CComObjectThreadModel
| Tek ya da daire | Ücretsiz | |
| InternalAddRef | Artan iş parçacığı güvenli değil. | Iş parçacığı güvenli artış. |
| Kilit | Hiçbir şey yok; kilitlemek için kritik bir bölüm yok. | Kritik bölüm kilitli. |
ThreadModel = CComObjectThreadModel::ThreadModelNoCS
| Tek ya da daire | Ücretsiz | |
| InternalAddRef | Artan iş parçacığı güvenli değil. | Iş parçacığı güvenli artış. |
| Kilit | Hiçbir şey yok; kilitlemek için kritik bir bölüm yok. | Hiçbir şey yok; kilitlemek için kritik bir bölüm yok. |
CComMultiThreadModel ge&nel bakış |nbsp; Sınıf üyeleri
Ayrıca bkz:nbsp;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModel&NoCS