CCriticalSection sınıfı
"Önemli bir bölümü" temsil eder — bir kaynak ya da kod bölümüne erişmek için bir defada bir iş parçacığı veren bir eşitleme nesnesi.
class CCriticalSection : public CSyncObject
Üyeler
Ortak Oluşturucusu
Ad |
Description |
---|---|
Yapıları bir CCriticalSection nesnesi. |
Public yöntemler
Ad |
Description |
---|---|
Ulaşmak için CCriticalSection nesnesi. |
|
Yayımları CCriticalSection nesnesi. |
Ortak İşleçler
Ad |
Description |
---|---|
Dahili bir işaretçi alır CRITICAL_SECTION nesnesi. |
Ortak veri üyeleri
Ad |
Description |
---|---|
A CRITICAL_SECTION nesnesi. |
Notlar
Bir defada yalnızca bir iş parçacığının verileri veya başka bir denetlenen kaynağı değiştirmek için izin, kritik bölümler faydalıdır.Örneğin, bağlantılı bir listeye düğüm ekleme, yalnızca bir iş parçacığı tarafından aynı anda izin verilmesi gereken bir işlemdir.Kullanarak bir CCriticalSection yalnızca bir iş parçacığının aynı anda listesine erişebilir bağlı liste denetimi nesne.
[!NOT]
İşlevselliğini CCriticalSection sınıfın gerçek bir Win32 tarafından sağlanan CRITICAL_SECTION nesnesi.
Kritik bölüm birbirini kapsamayan nesneler kullanılır (bkz: CMutex) ne zaman kritik hız ve kaynak işlem sınırları boyunca kullanılmayacak.
Kullanmak için iki yöntem vardır bir CCriticalSection nesne: tek başına ve katıştırılmış bir sınıf.
Tek başına yöntemi tek başına CCriticalSection nesne, değiştirmezler CCriticalSection nesne gerektiğinde.Kurucu karşı başarılı dönüşten sonra açıkça yapılan bir çağrıyla nesnesini kilitler Kilit.Call Unlock bitince kritik bölüm erişme.Bu, kaynak kodunuzu okuyan birine clearer sırasında kilit ve kritik bölüm önce ve sonra access kilidini açmak hatırlaması gereken şekilde fazla hataya yöntemidir.
Daha fazla tercih yöntemini kullanmaktır CSingleLock sınıfı.Ayrıca sahip bir Lock ve Unlock yöntemi, ancak bir özel durum oluşursa, kaynak kilidini açma hakkında endişe yok.
Yöntemini de paylaşabilirsiniz bir sınıfın birden çok iş parçacığı ile ekleyerek gömülü bir CCriticalSection-sınıf ve gerektiğinde veri üyesi kilitleme türü veri üyesi.
Kullanma hakkında daha fazla bilgi için CCriticalSection nesneleri, makalesine bakın çok iş parçacığı: eşitleme sınıfları nasıl.
Devralma hiyerarşisi
CCriticalSection
Gereksinimler
Başlık: afxmt.h