Partager via


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

CObject

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.

Voir aussi

CObject, classe
Graphique hiérarchique