synchronize
Синхронизирует доступ к целевому методу.
Синтаксис
[synchronize]
Замечания
Атрибут sync C++ реализует поддержку синхронизации целевого метода объекта. Синхронизация позволяет нескольким объектам использовать общий ресурс (например, метод класса), управляя доступом целевого метода.
Код, вставленный этим атрибутом, вызывает правильный Lock
метод (определяется моделью потоков) в начале целевого метода. При выходе Unlock
метода вызывается автоматически. Дополнительные сведения об этих функциях см. в разделе CComAutoThreadModule::Lock
Этот атрибут требует, чтобы атрибут coclass, progidили vi_progid (или другой атрибут, который подразумевает один из них) также применялся к этому элементу. Если используется любой отдельный атрибут, два других применяются автоматически. Например, если progid
применяется, vi_progid
а coclass
также применяется.
Пример
Следующий код обеспечивает синхронизацию UpdateBalance
метода 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;
}
};
Требования
Контекст атрибута | Значение |
---|---|
Относится к | Метод класса, метод |
Повторяемый | No |
Обязательные атрибуты | Одно или несколько из следующих элементов: coclass , progid или vi_progid . |
Недопустимые атрибуты | нет |
Дополнительные сведения о контекстах атрибутов см. в разделе Контексты атрибутов.