Synchronizowanie
Synchronizuje dostępu z metodą docelową.
[synchronize]
Uwagi
Zsynchronizować atrybut C++ implementuje obsługę synchronizacji metody obiektu docelowego.Synchronizacja pozwala wielu obiektów do używania wspólnego zasobu (np. metoda klasy) poprzez kontrolowanie dostępu metodą docelową.
Kod, wprowadzony przez ten atrybut wywołuje poprawne Lock metody (określona przez model wątka) na początku metody docelowej.Gdy metoda jest zakończony, Unlock nazywa się automatycznie.Aby uzyskać więcej informacji na temat tych funkcji, zobacz CComAutoThreadModule::Lock
Atrybut ten wymaga, aby coclass, progid, lub vi_progid atrybutu (lub inny atrybut, który oznacza jeden z tych) również być stosowane do tego samego elementu.Każdy pojedynczy atrybut jest używany, pozostałe dwie są stosowane automatycznie.Na przykład jeśli progid jest stosowany, vi_progid i coclass są również stosowane.
Przykład
Poniższy kod zawiera synchronizacji dla UpdateBalance metoda 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
Atrybutu kontekstu
Stosuje się do |
Metoda klasy, metoda |
Powtarzalne |
Nr |
Wymagane atrybuty |
Jeden lub więcej z następujących czynności: coclass, progid, lub vi_progid. |
Nieprawidłowe atrybuty |
Brak |
Aby uzyskać więcej informacji na temat kontekstów atrybutu, zobacz Kontekstów atrybutu.