Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.