www.pudn.com > LiServer.rar > CMsgAnalyse.cpp
#include "CMsgAnalyse.h"
void CMsgAnalyse::FreeMsgObj(Msg * obj)
{
HeapFree(GetProcessHeap(), 0, obj->buf);
HeapFree(GetProcessHeap(), 0, obj);
}
DWORD WINAPI CMsgAnalyse::MsgAnalyseThread(LPVOID lpParam)
{
Msg * obj;
CMsgAnalyse *v= (CMsgAnalyse *) lpParam;
while(1)
{
EnterCriticalSection(&gRecvCS);
if (gRecvMsg.size() > 0)
{
obj = gRecvMsg[0];
v->FreeMsgObj(obj);
vector::iterator iter = gRecvMsg.begin();
gRecvMsg.erase(iter);
}
LeaveCriticalSection(&gRecvCS);
}
return 0;
}
void CMsgAnalyse::StartThread()
{
for(int i = 0; i < 2 ; i++)
{
CreateThread(NULL, 0, MsgAnalyseThread, this, 0, NULL);
}
}