Klasa CComSingleThreadModel
Ta klasa udostępnia metody inkrementacji i dekrementacji wartości zmiennej.
Składnia
class CComSingleThreadModel
Elementy członkowskie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
CComSingleThreadModel::AutoCriticalSection | Odwołania do klasy CComFakeCriticalSection. |
CComSingleThreadModel::CriticalSection | Odwołania do klasy CComFakeCriticalSection . |
CComSingleThreadModel::ThreadModelNoCS | CComSingleThreadModel Odwołania . |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CComSingleThreadModel::D ecrement | Dekrementuje wartość określonej zmiennej. Ta implementacja nie jest bezpieczna wątkowo. |
CComSingleThreadModel::Increment | Zwiększa wartość określonej zmiennej. Ta implementacja nie jest bezpieczna wątkowo. |
Uwagi
CComSingleThreadModel
Udostępnia metody inkrementacji i dekrementacji wartości zmiennej. W przeciwieństwie do CComMultiThreadModel i CComMultiThreadModelNoCS, te metody nie są bezpieczne wątkowo.
Zazwyczaj używa CComSingleThreadModel
się jednej z dwóch typedef
nazw: CComObjectThreadModel lub CComGlobalsThreadModel. Klasa, do którego odwołuje się każda typedef
z nich, zależy od używanego modelu wątkowego, jak pokazano w poniższej tabeli:
— klasa typedef | Model pojedynczego wątkowania | Model wątków apartamentowych | Model wolnych wątków |
---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel
; M= CComMultiThreadModel
CComSingleThreadModel
sam definiuje trzy typedef
nazwy. ThreadModelNoCS
CComSingleThreadModel
odwołuje się do . AutoCriticalSection
i CriticalSection
klasa referencyjna CComFakeCriticalSection, która udostępnia puste metody skojarzone z uzyskiwaniem i zwalnianiem własności sekcji krytycznej.
Wymagania
Nagłówek: atlbase.h
CComSingleThreadModel::AutoCriticalSection
W przypadku używania CComSingleThreadModel
metody typedef
nazwa AutoCriticalSection
odwołuje się do klasy CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Uwagi
Ponieważ CComFakeCriticalSection
nie udostępnia sekcji krytycznej, jej metody nic nie robią.
CComMultiThreadModel i CComMultiThreadModelNoCS zawierają definicje dla elementu AutoCriticalSection
. W poniższej tabeli przedstawiono relację między klasą modelu wątkowania a klasą sekcji krytycznej przywołyną przez :AutoCriticalSection
Klasa zdefiniowana w | Odwołano się do klasy |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Oprócz AutoCriticalSection
funkcji można użyć typedef
nazwy CriticalSection. Nie należy określać AutoCriticalSection
w obiektach globalnych lub statycznych składowych klas, jeśli chcesz wyeliminować kod uruchamiania CRT.
Przykład
Zobacz CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
W przypadku używania CComSingleThreadModel
metody typedef
nazwa CriticalSection
odwołuje się do klasy CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Uwagi
Ponieważ CComFakeCriticalSection
nie udostępnia sekcji krytycznej, jej metody nic nie robią.
CComMultiThreadModel i CComMultiThreadModelNoCS zawierają definicje dla elementu CriticalSection
. W poniższej tabeli przedstawiono relację między klasą modelu wątkowania a klasą sekcji krytycznej przywołyną przez :CriticalSection
Klasa zdefiniowana w | Odwołano się do klasy |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Oprócz CriticalSection
funkcji można użyć typedef
nazwy AutoCriticalSection. Nie należy określać AutoCriticalSection
w obiektach globalnych lub statycznych składowych klas, jeśli chcesz wyeliminować kod uruchamiania CRT.
Przykład
Zobacz CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Ta funkcja statyczna dekreuje wartość zmiennej wskazywanej przez p.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parametry
p
[in] Wskaźnik do zmiennej, która ma zostać zdekrementowana.
Wartość zwracana
Wynik dekrementacji.
CComSingleThreadModel::Increment
Ta funkcja statyczna zwiększa wartość zmiennej wskazywanej przez p.
static ULONG WINAPI Increment(LPLONG p) throw();
Parametry
p
[in] Wskaźnik do zmiennej, która ma być zwiększana.
Wartość zwracana
Wynik przyrostu.
CComSingleThreadModel::ThreadModelNoCS
W przypadku używania CComSingleThreadModel
nazwy ThreadModelNoCS
typedef
nazwa po prostu odwołuje się do CComSingleThreadModel
.
typedef CComSingleThreadModel ThreadModelNoCS;
Uwagi
CComMultiThreadModel i CComMultiThreadModelNoCS zawierają definicje dla elementu ThreadModelNoCS
. W poniższej tabeli przedstawiono relację między klasą modelu wątkowania a klasą przywołyną przez ThreadModelNoCS
:
Klasa zdefiniowana w | Odwołano się do klasy |
---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Przykład
Zobacz CComMultiThreadModel::AutoCriticalSection.