1、临界区(同一进程的不同线程)
头文件CCriticalSection.h
#pragma once
class CCriticalSection
{
public:
CCriticalSection();
CCriticalSection(CRITICAL_SECTION* pMutex);
~CCriticalSection(void);
private:
CRITICAL_SECTION* m_pLock;
};
源文件 CCriticalSection.cpp
<pre class="cpp" name="code"><p>#include "StdAfx.h"
#include ".\guard.h"</p><p>CCriticalSection::CCriticalSection()
: m_pLock(NULL)
{</p><p>}
CCriticalSection::CCriticalSection(CRITICAL_SECTION* pMutex)
{
m_pLock = pMutex;
EnterCriticalSection(m_pLock);
}</p><p>CCriticalSection::~CCriticalSection(void)
{
LeaveCriticalSection(m_pLock(;</p><p>}</p><p> </p><p>使用:</p><p>构造函数中:</p><p>CRITICAL_SECTION m_sctLogInfo;</p><p>InitializeCriticalSection(&m_sctLogInfo);</p><p> </p><p>使用函数中:</p><p>CGuard guard(&m_sctLogInfo);</p><p>:::::::</p><p>:::::::</p><p> </p><p>析构函数中:</p><p>DeleteCriticalSection($m_sctLogInfo);
DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo);</p><p> </p>