Files
core/ASCImageStudio3/AVSImageView5/Tracking/TemporaryCS.h

29 lines
410 B
C++

#pragma once
class CTemporaryCS
{
public:
CTemporaryCS(CRITICAL_SECTION *cs)
{
EnterCriticalSection(cs);
m_cs = cs;
}
~CTemporaryCS()
{
LeaveCS();
}
void LeaveCS()
{
if (NULL!=m_cs)
LeaveCriticalSection(m_cs);
m_cs = NULL;
}
void EnterCS(CRITICAL_SECTION *cs)
{
LeaveCS();
EnterCriticalSection(cs);
m_cs = cs;
}
protected:
CRITICAL_SECTION *m_cs;
};