synchronize
Sincronizza l'accesso al metodo di destinazione.
Sintassi
[synchronize]
Osservazioni:
L'attributo synchronize C++ implementa il supporto per la sincronizzazione del metodo di destinazione di un oggetto. La sincronizzazione consente a più oggetti di usare una risorsa comune, ad esempio un metodo di una classe, controllando l'accesso al metodo di destinazione.
Il codice inserito da questo attributo chiama il metodo appropriato Lock
(determinato dal modello di threading) all'inizio del metodo di destinazione. Quando il metodo viene chiuso, Unlock
viene chiamato automaticamente. Per altre informazioni su queste funzioni, vedere CComAutoThreadModule::Lock
Questo attributo richiede che anche l'attributo coclass, progido vi_progid (o un altro attributo che implica uno di questi) sia applicato allo stesso elemento. Se viene usato un qualsiasi attributo, anche gli altri due vengono applicati automaticamente. Ad esempio, se progid
viene applicato vi_progid
e coclass
vengono applicati anche.
Esempio
Il codice seguente fornisce la sincronizzazione per il UpdateBalance
metodo dell'oggetto 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;
}
};
Requisiti
Contesto attributo | Valore |
---|---|
Si applica a | Metodo class, metodo |
Ripetibile | No |
Attributi obbligatori | Uno o più degli elementi seguenti: coclass , progid o vi_progid . |
Attributi non validi | None |
Per altre informazioni sui contesti di attributi, vedere Contesti di attributi.