// a critical section object.
CCriticalSection m_cs;
...
m_cs.Enter();
...
m_cs.Leave();
// CCriticalSection.h
class CCriticalSection
{
CRITICAL_SECTION m_CriticalSection;
public:
void Leave();
void Enter();
CCriticalSection();
virtual ~CCriticalSection();
};
// CCriticalSection.cpp
CCriticalSection::CCriticalSection()
{
::InitializeCriticalSection(&m_CriticalSection);
}
CCriticalSection::~CCriticalSection()
{
::DeleteCriticalSection(&m_CriticalSection);
}
void CCriticalSection::Enter()
{
::EnterCriticalSection(&m_CriticalSection);
}
void CCriticalSection::Leave()
{
::LeaveCriticalSection(&m_CriticalSection);
}
2010年1月11日 星期一
CCriticalSection - a critical section object.
訂閱:
張貼留言 (Atom)
這大概是我最小的一個類別了!
回覆刪除在解構的時候,如果還沒 Leave,就先 Leave 再 Delete,會不會更好呢?
回覆刪除通常那個時後 就當掉了, 在做競爭時, 如果只解了一個 另一個沒 leave 到, 這時, 無條件死機! 因此在這裡不預設自動leave!