다음을 통해 공유


synchronize

대상 메서드에 대한 액세스를 동기화합니다.

구문

[synchronize]

설명

동기화 C++ 특성은 개체의 대상 메서드 동기화에 대한 지원을 구현합니다. 동기화를 사용하면 여러 개체가 대상 메서드의 액세스를 제어하여 공통 리소스(예: 클래스 메서드)를 사용할 수 있습니다.

이 특성에 의해 삽입된 코드는 대상 메서드의 시작 부분에서 적절한 Lock 메서드(스레딩 모델에 의해 결정됨)를 호출합니다. 메서드가 종료되면 Unlock 자동으로 호출됩니다. 이러한 함수에 대한 자세한 내용은 CComAutoThreadModule::Lock을 참조 하세요.

이 특성을 사용하려면 coclass, progid또는 vi_progid 특성(또는 이 중 하나를 암시하는 다른 특성)을 동일한 요소에 적용해야 합니다. 단일 특성을 사용하는 경우 다른 두 특성도 자동으로 적용됩니다. 예를 들어 적용 vi_progid 되고 coclass 적용된 경우 progid 입니다.

예시

다음 코드는 개체의 메서드에 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;
   }
};

요구 사항

특성 컨텍스트
적용 대상: 클래스 메서드, 메서드
반복 가능 아니요
필수 특성 다음 중 하나 이상: coclass, progid또는 vi_progid.
잘못된 특성 None

특성 컨텍스트에 대한 자세한 내용은 특성 컨텍스트를 참조하세요.

참고 항목

COM 특성