CComMultiThreadModel::AutoCriticalSection

typedef CComAutoCriticalSection AutoCriticalSection;

Bemerkungen

Wenn Sie Suchenverwenden, verweist der Typedef -Name AutoCriticalSection Klasse CComAutoCriticalSection, die Methoden zum Abrufen und Freigeben von Eigentum an ein kritisches Abschnittsobjekt bereitstellt.

CComSingleThreadModel und CComMultiThreadModelNoCS enthalten auch Definitionen für AutoCriticalSection. Die folgende Tabelle zeigt die Beziehung zwischen der threading Modellklasse und den kritischen Abschnitt Referenz von AutoCriticalSection:

In definierten Klasse Referenzierte Klasse
Suchen CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Zusätzlich zu AutoCriticalSectionkönnen Sie die Typedef -Name CriticalSection. Sie sollten AutoCriticalSection in globale Objekte oder statische Klassenmember nicht angeben, wenn Sie den CRT-Startcode beseitigen wollen.

Beispiel

Der folgende Code stammt von CComObjectRootEx.

templatelt; Klasse ThreadModel >
CComObjectRootEx Klasse: öffentliche CComObjectRootBase
{
Öffentliche:
   Typedef ThreadModel _ThreadModel;
   Typedef _ThreadModel::AutoCriticalSection _CritSec;

ULONG InternalAddRef)
   {
      ...
      Rückkehr _ThreadModel::Increment(&m_dwRef);
   }
   ...
   void Lock () {M_critsec.«(Sperre); }
   ...

Privat:
   _CritSec M_critsec;

}

Die folgenden Tabellen zeigen die Ergebnisse der InternalAddRef und Sperre Methoden, je nach ThreadModel Vorlagenparameter und die von der Anwendung verwendete Threadmodell:

ThreadModel = CComObjectThreadModel

Einzel- oder Wohnung Kostenlos
InternalAddRef Die Schrittweite ist nicht Thread-sicher. Die Schrittweite ist Thread-sicher.
Sperre Nichts; Es gibt keine kritischer Abschnitt Sperren. Der kritische Abschnitt gesperrt ist.

ThreadModel = CComObjectThreadModel::ThreadModelNoCS

Einzel- oder Wohnung Kostenlos
InternalAddRef Die Schrittweite ist nicht Thread-sicher. Die Schrittweite ist Thread-sicher.
Sperre Nichts; Es gibt keine kritischer Abschnitt Sperren. Nichts; Es gibt keine kritischer Abschnitt Sperren.

Suche&n Übersicht |nbsp; Klassenmember

Siehe auch&Nbsp;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModelNoCS

Index