WINCE CRITICAL_SECTION 的问题
平台:armv4i, WINCE4.0(SP3,SP4), 在使用CRITICAL_SECTION时,出现死锁的情况,看了代码N久,找不出问题,请高手指点,附伪码:
// 监界区封装
class CCriSec
{
public:
CCriSec() {::InitializeCriticalSection(&m_crisec);}
~CCriSec() {::DeleteCriticalSection(&m_crisec);}
void Lock() {::EnterCriticalSection(&m_crisec);}
void Unlock() {::LeaveCriticalSection(&m_crisec);}
private:
CCriSec(const CCriSec& cs);
CCriSec operator = (const CCriSec& cs);
CRITICAL_SECTION m_crisec;
};
template<class CLockObj> class CLocalLock
{
public:
CLocalLock(CLockObj& obj) : m_lock(obj) {m_lock.Lock();}
~CLocalLock() {m_lock.Unlock();}
private:
CLockObj& m_lock;
};
class ParamFile
{
public:
read( )
{
CLocalLock<CCriSec> Guard(m_CS);
readImpl( )...
}
writee( )
{
CLocalLock<CCriSec> Guard(m_CS);
writeImpl( );
}
private:
CCriSel m_CS;
}
// 调用线程
CParamFile file;
file.Read( );
file.Write();
有多个使用file的线程,且时间很频繁,。。。