typeDef CComAutoCriticalSection AutoCriticalSection;
Remarques
Lorsque vous utilisez CComMultiThreadModel, le nom de typedef AutoCriticalSection références de classe CComAutoCriticalSection, qui fournit des méthodes permettant d'obtenir et de libérer la propriété d'un objet section critique.
CComSingleThreadModel et CComMultiThreadModelNoCS contiennent aussi des définitions pour les AutoCriticalSection. Le tableau suivant montre la relation entre la classe thread du modèle et la référence de classe de section critique par AutoCriticalSection:
Classe définie dans | Classe référencée |
CComMultiThreadModel | CComCriticalSection |
CComSingleThreadModel | CComFakeCriticalSection |
CComMultiThreadModelNoCS | CComFakeCriticalSection |
En plus AutoCriticalSection, vous pouvez utiliser le nom de typedef CriticalSection. Vous devez spécifier pas AutoCriticalSection dans les objets globaux ou des membres de classe statique si vous souhaitez supprimer le code de démarrage CRT.
Exemple
Le code suivant est tiré de CComObjectRootEx.
templatelt ; ThreadModel de la classe >
Class CComObjectRootEx : public CComObjectRootBase
{
public :
TypeDef ThreadModel _ThreadModel ;
TypeDef _ThreadModel::AutoCriticalSection _CritSec ;
ULONG InternalAddRef)
{
...
Return _ThreadModel::Increment(&m_dwRef) ;
}
...
VOID Lock () {m_critsec.Verrou () ; }
...
privé :
_CritSec m_critsec ;
}
Les tableaux suivants montrent les résultats des méthodes InternalAddRef et serrure , selon le paramètre de modèle de ThreadModel et le modèle de thread utilisé par l'application:
ThreadModel = CComObjectThreadModel
Seul ou en appartement | Gratuit | |
InternalAddRef | L'accroissement n'est pas thread-safe. | L'incrément est thread-safe. |
Verrou | Ne fait rien ; Il n'y a pas de section critique pour verrouiller. | La section critique est verrouillée. |
ThreadModel = CComObjectThreadModel::ThreadModelNoCS
Seul ou en appartement | Gratuit | |
InternalAddRef | L'accroissement n'est pas thread-safe. | L'incrément est thread-safe. |
Verrou | Ne fait rien ; Il n'y a pas de section critique pour verrouiller. | Ne fait rien ; Il n'y a pas de section critique pour verrouiller. |
Aperçu CComMultiThreadModel |  ; Membres de classe
Voir aussinbsp ;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModel&NoCS