Поделиться через


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

Дополнительные сведения о контекстах атрибута см. в разделе Контексты атрибута.

См. также

Другие ресурсы

Атрибуты COM

Attributes Samples