Udostępnij za pośrednictwem


synchronize

Synchronizuje dostęp do metody docelowej.

Składnia

[synchronize]

Uwagi

Synchronizuj atrybut języka C++ implementuje obsługę synchronizowania metody docelowej obiektu. Synchronizacja umożliwia wielu obiektom używanie wspólnego zasobu (na przykład metody klasy) przez kontrolowanie dostępu do metody docelowej.

Kod wstawiony przez ten atrybut wywołuje właściwą Lock metodę (określaną przez model wątkowania) na początku metody docelowej. Gdy metoda zostanie zakończona, Unlock jest wywoływana automatycznie. Aby uzyskać więcej informacji na temat tych funkcji, zobacz CComAutoThreadModule::Lock

Ten atrybut wymaga również zastosowania coclass, progid lub vi_progid atrybutu (lub innego atrybutu, który implikuje jeden z tych) również do tego samego elementu. Jeśli jest używany jakikolwiek pojedynczy atrybut, pozostałe dwa są stosowane automatycznie. Na przykład, jeśli progid jest stosowany, vi_progid i coclass są również stosowane.

Przykład

Poniższy kod zapewnia synchronizację UpdateBalance metody CMyClass obiektu.

// 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;
   }
};

Wymagania

Kontekst atrybutu Wartość
Dotyczy Metoda klasy, metoda
Powtarzalne Nie.
Wymagane atrybuty Co najmniej jeden z następujących elementów: coclass, progidlub vi_progid.
Nieprawidłowe atrybuty None

Aby uzyskać więcej informacji na temat kontekstów atrybutów, zobacz Konteksty atrybutów.

Zobacz też

Atrybuty COM