방법: C++에서 lock C# 키워드 구현
업데이트: 2007년 11월
이 항목에서는 C# lock 키워드를 Visual C++에서 구현하는 방법을 보여 줍니다. 자세한 내용은 lock 문(C# 참조)을 참조하십시오.
C++ 지원 라이브러리에서 lock 클래스를 사용할 수도 있습니다. 자세한 내용은 Synchronization (lock Class)을 참조하십시오.
예제
// CS_lock_in_CPP.cpp
// compile with: /clr /c
using namespace System::Threading;
ref class Lock {
Object^ m_pObject;
Lock % operator=( Lock const % );
Lock( Lock const % );
public:
Lock( Object ^ pObject ) : m_pObject( pObject ) {
Monitor::Enter( m_pObject );
}
~Lock() {
Monitor::Exit( m_pObject );
}
};
ref struct LockHelper {
void DoSomething();
};
void LockHelper::DoSomething() {
// Note: Reference type with stack allocation semantics to provide
// deterministic finalization
Lock lock( this );
// LockHelper instance is locked
}