Condividi tramite


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, progido vi_progid.
Attributi non validi None

Per altre informazioni sui contesti di attributi, vedere Contesti di attributi.

Vedi anche

Attributi COM