DeleteCriticalSection 出錯 can not read ... windows 32 vs2010
發(fā)生在析夠函數(shù)中, vs2010 debug 模式 .
CriticalSection::~CriticalSection(void){
DeleteCriticalSection(&m_CritSect);
}
我開始推測,必須退出section才能delete ?
InitializeCriticalSection(&m_CritSect);
EnterCriticalSection(&m_CritSect);
DeleteCriticalSection(&m_CritSect);
實(shí)際上這樣退出是可以的.
問題在哪里?
一個回調(diào)處理函數(shù)類注冊到另外一個線程里面.另外一個線程一直有消息推送或者調(diào)用其內(nèi)部函數(shù).
~主類(){
aa->release(); //之前沒有這句話 ,內(nèi)部aa 線程一直在運(yùn)行 ,可能是排在析構(gòu) (DeleteCriticalSection)之后或者之前,損壞了這個變量 m_CritSect
}
這里開始調(diào)用 DeleteCriticalSection(&m_CritSect); 并且報(bào)錯了.