Programing/C++|CLi

C++/CLI 에서 Lock 거는 법

즐거운 개발자 2019. 12. 3. 18:55
반응형

기존에 Lock 키워드를 사용해도 되지만, 좀더 간단한 방법이 있어서 글을 씁니다.

//헤더파일에 정의되어 있는 static 필드
static  Object^ _obj = gcnew Object();;
static bool _openKernel;

//길게 쓰기 싫어서 Using을 합니다.
using namespace System::Threading;
static property bool OpenKernal
{
    bool get()
    {
        return _openKernel;
    }

    void set(bool value)
    {
        Monitor::Enter(obj); //System.Threading에 존재 하는 Monitor, Enter로 락을 겁니다.
        try
        {
            _openKernel = value;
        }
        finally
        {
            Monitor::Exit(obj); //Lock을 해제 합니다.
        }
    }
}

이렇게 해서 Lock을 좀더 간편 하게? 걸어 보았다.

End