Compartir a través de


synchronize

Sincroniza el acceso al método de destino.

Sintaxis

[synchronize]

Comentarios

El atributo synchronize de C++ implementa compatibilidad para sincronizar el método de destino de un objeto. La sincronización permite que varios objetos usen un recurso común (por ejemplo, un método de una clase) mediante el control del acceso del método de destino.

El código insertado por este atributo llama al método Lock adecuado (según el modelo de subprocesos) al principio del método de destino. Cuando se sale del método, se llama automáticamente a Unlock. Para obtener más información sobre estas funciones, consulte CComAutoThreadModule::Lock.

Este atributo requiere que el atributo coclass, progido vi_progid (u otro atributo que implique uno de estos) se aplique también al mismo elemento. Si se usa cualquier atributo único, los otros dos se aplicarán automáticamente. Por ejemplo, si se aplica progid, también se aplican vi_progid y coclass.

Ejemplo

El código siguiente proporciona sincronización para el método UpdateBalance del objeto CMyClass.

// cpp_attr_ref_synchronize.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="SYNC")];

[coclass,
threading(both),
vi_progid("MyProject.MyClass"),
progid("MyProject.MyClass.1"),
uuid("7a7baa0d-59b8-4576-b754-79d07e1d1cc3")
]
class CMyClass {
   float m_nBalance;

   [synchronize]
   void UpdateBalance(float nAdjust) {
      m_nBalance += nAdjust;
   }
};

Requisitos

Contexto de atributo Valor
Se aplica a Método de clase, método
Reiterativo No
Atributos requeridos Uno o varios de los valores siguientes: coclass, progid o vi_progid.
Atributos no válidos Ninguno

Para obtener más información acerca de los contextos de atributo, consulte Contextos de atributo.

Consulte también

Atributos COM