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.