还是线程问题:(
UINT TakeData(LPVOID sid)
{
int Rsid = 0;
Rsid=*((int*)sid);
if (!CData->IsEmpty()) //*****这里出错
{}
while(1)
{
::Sleep(2000);
}
return NULL;
}
void CICPDlg::AddData(int sid,int ecount,int pid,int eflag,char *mcont)
{
Msg_Element *Msg;
Msg = new Msg_Element;
Msg->session_id = sid;
Msg->element_count = ecount;
Msg->position_id = pid ;
Msg->end_flag = eflag ; 结束标志位
Msg->msg_cont= mcont;
ListSid = 0 ;
ListSid = sid ;
if (!CData->IsEmpty()) //判断列表里是否有数据,如果没有则新开一线程工作
{
if (CData->FindData(ListSid) == TRUE)
{ //如果在列表里有该数据则不做处理
}
else
{//如果没有数据则新建一线程
pThread = AfxBeginThread(TakeData,&ListSid);
}
}
else
{ //如果列表里没有数据,则新建一线程
pThread = AfxBeginThread(TakeData,&ListSid);
}
CData->AddTail(Msg);
}
怎么样才能在线程函烽里调用CData?操作链表!