Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.