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


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.
Недопустимые атрибуты нет

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

См. также

Атрибуты COM