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