QT线程问题,高手救我。。。。。
主线程:
void MainThread::run()
{
while(1)
{
for( int i=0; i< pCard->nMaxCh; i++ )
{
if( pCard->ATrkCh[i].enMissionType==MISSION_NO_APPOINT
&&( (pCard->ATrkCh[i].nShChType != 0 && SsmGetHookState(i) == 1) // when channnel is internal
||(pCard->ATrkCh[i].nShChType == 0 && SsmGetChState(i) == S_CALL_RINGING))// when channnel is external
)
{
pCard->ATrkCh[i].enMissionType=MISSION_PBX;
SubThread *pSubThread=new SubThread::SubThread(pCard,i); //start a new sub thread
pSubThread->start();
}
}
sleep(1);
}
}
如看到满足条件就New 一个子线程如下:
void SubThread::run()
{
....................................
....................................
ListenToDtmf();
// int iii=0;
// while(iii<100000)
// {
// iii++;
// cout<<"iii====="<<iii<<endl;
// sleep(1);
// }
cout<<"@@@@@@@@@@@@@@@@@@@ End ListenDtmf End SubThread::Run()--@@@@@@@@@@@@@@@@@@@"<<endl;
}
最后执行完listenToDtmf()都无问题,cout<<"@@@@@@@@@@@@@@@@@@@ End ListenDtmf End SubThread::Run()--@@@@@@@@@@@@@@@@@@@"<<endl;
也可打印出来,就是打印完此句返回MainThread()时出错,出错信息:segmentation fault
应是内存出错,但我有一个同样功能的模块又无此问题,困了一整天了,
恳请高手提示解决。。。
先行谢过!