CSyncObject, classe
Classe virtuelle pure qui fournit une fonctionnalité commune aux objets de synchronisation dans Win32.
Syntaxe
class CSyncObject : public CObject
Membres
Constructeurs publics
Nom | Description |
---|---|
CSyncObject ::CSyncObject | Construit un objet CSyncObject . |
Méthodes publiques
Nom | Description |
---|---|
CSyncObject ::Lock | Obtient l’accès à l’objet de synchronisation. |
CSyncObject ::Unlock | Obtient l’accès à l’objet de synchronisation. |
Opérateurs publics
Nom | Description |
---|---|
CSyncObject ::operator HANDLE | Fournit l’accès à l’objet de synchronisation. |
Membres de données publics
Nom | Description |
---|---|
CSyncObject ::m_hObject | Handle de l’objet de synchronisation sous-jacent. |
Notes
La bibliothèque de classes Microsoft Foundation fournit plusieurs classes dérivées de CSyncObject
. Il s’agit de CEvent, CMutex, CCriticalSection et CSemaphore.
Pour plus d’informations sur l’utilisation des objets de synchronisation, consultez l’article Multithreading : Utilisation des classes de synchronisation.
Hiérarchie d'héritage
CSyncObject
Spécifications
En-tête : afxmt.h
CSyncObject ::CSyncObject
Construit un objet de synchronisation avec le nom fourni.
explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();
Paramètres
pstrName
Nom de l'objet. Si la valeur est NULL, pstrName est null.
CSyncObject ::Lock
Appelez cette fonction pour accéder à la ressource contrôlée par l’objet de synchronisation.
virtual BOOL Lock(DWORD dwTimeout = INFINITE);
Paramètres
dwTimeout
Spécifie la durée en millisecondes pour attendre que l’objet de synchronisation soit disponible (signalé). Si INFINITE, Lock
attend que l’objet soit signalé avant de retourner.
Valeur de retour
Différent de zéro si la fonction a réussi ; sinon 0.
Notes
Si l’objet de synchronisation est signalé, Lock
retourne correctement et le thread possède désormais l’objet. Si l’objet de synchronisation n’est pas signé (indisponible), Lock
attend que l’objet de synchronisation devienne signalé jusqu’au nombre de millisecondes spécifiées dans le paramètre dwTimeOut . Si l’objet de synchronisation n’a pas été signalé dans la durée spécifiée, Lock
retourne l’échec.
CSyncObject ::m_hObject
Handle de l’objet de synchronisation sous-jacent.
HANDLE m_hObject;
CSyncObject ::operator HANDLE
Utilisez cet opérateur pour obtenir le handle de l’objet CSyncObject
.
operator HANDLE() const;
Valeur de retour
En cas de réussite, le handle de l’objet de synchronisation ; sinon, NULL.
Notes
Vous pouvez utiliser le handle pour appeler directement les API Windows.
CSyncObject ::Unlock
La déclaration sans Unlock
paramètre est une fonction virtuelle pure et doit être substituée par toutes les classes dérivant de CSyncObject
.
virtual BOOL Unlock() = 0; virtual BOOL Unlock(
LONG lCount,
LPLONG lpPrevCount = NULL);
Paramètres
lCount
Non utilisé par l’implémentation par défaut.
lpPrevCount
Non utilisé par l’implémentation par défaut.
Valeur de retour
L’implémentation par défaut retourne toujours TRUE.
Notes
L’implémentation par défaut de la déclaration avec deux paramètres retourne toujours TRUE. Cette fonction est appelée pour libérer l’accès à l’objet de synchronisation appartenant au thread appelant. La deuxième déclaration est fournie pour les objets de synchronisation tels que les sémaphores qui autorisent plusieurs accès d’une ressource contrôlée.