读书人

类的公用数据与全局线程的有关问题请问

发布时间: 2013-06-26 14:29:32 作者: rapoo

类的公用数据与全局线程的问题请教......
本帖最后由 kxywn 于 2013-04-30 11:47:08 编辑 类A.h
{
CRITICAL_SECTIONm_lock;
queue<string>m_qMessage;
}

类A.Cpp


DWORD WINAPI WriteFileThread(LPVOID lp) //A 类全局线程函数 ,从A类对象创建该函数就一直运行
{
CLog *p=(CLog *)lp;
......
while (p->m_bIsWorking)
{
......
EnterCriticalSection(&p->m_lock);
if (!p->m_qMessage.empty())
{
p->m_qMessage.pop();
}
LeaveCriticalSection(&p->m_lock);
......
....
}

A:add(string ss) 从A类对象生成,此函数一直在被调用
{
EnterCriticalSection(&m_lock);
m_qMessage.push("\r\nINFO "+GetCurTime()+ss);
LeaveCriticalSection(&m_lock);
}

编译:OK
运行出现错误:Expression:deque iterator not dereferencable

注明:除了这两个地方用了m_qMessage,其他地方都没用,不过A类对象有好几个的。
请大侠指教...
[解决办法]
运行出现错误:Expression:deque iterator not dereferencable

估计同步问题没处理好,队列出界了

读书人网 >C++

热点推荐