synchronize
Synchronizuje přístup k cílové metodě.
Syntaxe
[synchronize]
Poznámky
Synchronizační atribut C++ implementuje podporu synchronizace cílové metody objektu. Synchronizace umožňuje více objektům používat společný prostředek (například metodu třídy) tím, že řídí přístup cílové metody.
Kód vložený tímto atributem volá správnou Lock
metodu (určenou modelem vláken) na začátku cílové metody. Když je metoda ukončena, Unlock
je volána automaticky. Další informace o těchto funkcích naleznete v tématu CComAutoThreadModule::Lock
Tento atribut vyžaduje, aby se na stejný prvek použil také atribut coclass, progid nebo vi_progid (nebo jiný atribut, který napovídá jeden z těchto atributů). Pokud se použije jakýkoli jeden atribut, ostatní dva se automaticky použijí. Pokud se například progid
použije a vi_progid
coclass
použije se také.
Příklad
Následující kód poskytuje synchronizaci pro UpdateBalance
metodu objektu 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;
}
};
Požadavky
Kontext atributu | Hodnota |
---|---|
Platí pro | Metoda třídy, metoda |
Opakovatelný | No |
Požadované atributy | Nejméně jedna z následujících možností: coclass , progid nebo vi_progid . |
Neplatné atributy | Nic |
Další informace o kontextech atributů naleznete v tématu Kontexty atributů.