Aracılığıyla paylaş


CComCriticalSection Sınıfı

Bu sınıf, kritik bir bölüm nesnesinin sahipliğini almak ve serbest bırakmak için yöntemler sağlar.

Sözdizimi

class CComCriticalSection

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComCriticalSection::CComCriticalSection Oluşturucu.

Genel Yöntemler

Veri Akışı Adı Açıklama
CComCriticalSection::Init Kritik bir bölüm nesnesi oluşturur ve başlatır.
CComCriticalSection::Lock Kritik bölüm nesnesinin sahipliğini alır.
CComCriticalSection::Term Kritik bölüm nesnesi tarafından kullanılan sistem kaynaklarını serbest bırakır.
CComCriticalSection::Unlock Kritik bölüm nesnesinin sahipliğini serbest bırakır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CComCriticalSection::m_sec CRITICAL_SECTION nesnesi.

Açıklamalar

CComCriticalSectionCComAutoCriticalSection sınıfına benzer, ancak kritik bölümü açıkça başlatmanız ve serbest bırakmanız gerekir.

Genellikle CriticalSection adıyla typedef kullanırsınızCComCriticalSection. Bu adCComCriticalSection, CComMultiThreadModel kullanılırken başvurur.

Bu sınıfı çağırmak ve doğrudan çağırmak Lock yerine daha güvenli bir yol için bkz. CComCritSecLock Sınıfı.Unlock

Gereksinimler

Üst bilgi: atlcore.h

CComCriticalSection::CComCriticalSection

Oluşturucu.

CComCriticalSection() throw();

Açıklamalar

m_sec veri üyesini NULL olarak ayarlar.

CComCriticalSection::Init

m_sec veri üyesinde yer alan kritik bölüm nesnesini başlatan Win32 işlevi InitializeCriticalSection'ı çağırır.

HRESULT Init() throw();

Dönüş Değeri

Başarı, E_OUTOFMEMORY veya hata durumunda E_FAIL S_OK döndürür.

CComCriticalSection::Lock

İş parçacığının m_sec veri üyesinde yer alan kritik bölüm nesnesinin sahipliğini almasını bekleyen Win32 işlevi EnterCriticalSection'ı çağırır.

HRESULT Lock() throw();

Dönüş Değeri

Başarı, E_OUTOFMEMORY veya hata durumunda E_FAIL S_OK döndürür.

Açıklamalar

Kritik bölüm nesnesi ilk olarak Init yöntemine yapılan bir çağrıyla başlatılmalıdır. Korumalı kodun yürütülmesi bittiğinde, iş parçacığının kritik bölümün sahipliğini serbest bırakmak için Unlock çağrısı yapması gerekir.

CComCriticalSection::m_sec

Tüm CComCriticalSection yöntemler tarafından kullanılan kritik bir bölüm nesnesi içerir.

CRITICAL_SECTION m_sec;

CComCriticalSection::Term

m_sec veri üyesinde yer alan kritik bölüm nesnesi tarafından kullanılan tüm kaynakları serbest bırakan Win32 işlevini DeleteCriticalSection olarak çağırır.

HRESULT Term() throw();

Dönüş Değeri

S_OK döndürür.

Açıklamalar

Çağrıldıktan sonra Term kritik bölüm artık eşitleme için kullanılamaz.

CComCriticalSection::Unlock

m_sec veri üyesinde yer alan kritik bölüm nesnesinin sahipliğini serbest bırakan Win32 işlevini LeaveCriticalSection olarak çağırır.

HRESULT Unlock() throw();

Dönüş Değeri

S_OK döndürür.

Açıklamalar

İlk olarak sahipliği almak için iş parçacığının Lock yöntemini çağırması gerekir. için yapılan her çağrı Lock , kritik bölümün sahipliğini serbest bırakmak için Unlock karşılık gelen bir çağrı gerektirir.

Ayrıca bkz.

CComFakeCriticalSection Sınıfı
Sınıfa Genel Bakış
CComCritSecLock Sınıfı