Udostępnij za pośrednictwem


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 CComSingleThreadModelOdwoł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. ThreadModelNoCSCComSingleThreadModelodwoł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 CComSingleThreadModelmetody 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 AutoCriticalSectionfunkcji 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 CComSingleThreadModelmetody 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 CriticalSectionfunkcji 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 CComSingleThreadModelnazwy 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.

Zobacz też

Omówienie klasy