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 |
특성 컨텍스트에 대한 자세한 내용은 특성 컨텍스트를 참조하세요.