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 , progid lub vi_progid . |
Nieprawidłowe atrybuty | Brak |
Aby uzyskać więcej informacji na temat kontekstów atrybutów, zobacz Konteksty atrybutów.