读书人

thread msg 更正

发布时间: 2012-12-28 10:29:05 作者: rapoo

thread msg 修正

DWORD WINAPI Thread_List_In(LPVOID lpParam)
{
?MSG msg;
?PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
?while(1)
?{
??if(GetMessage(&msg,0,0,0)) //get msg from message queue
??{
???switch(msg.message)
???{
???case MY_MSG:
????char * pInfo = (char *)msg.wParam;
????printf("recv %s\n",pInfo);
????WaitForSingleObject(hMutex,INFINITE);
????task_list_out = task_list;
????task_list.clear();
????ReleaseMutex(hMutex);
????Sleep(100);
????delete[] pInfo;
????break;
???}
??}
??for(int i=0;i<30000;i++)
??{
???task_info ti;
???ti.set_task_id("1");
???
???task_list.push_back(ti);
??}
??//WaitForSingleObject(hMutex,INFINITE);
??/*task_pool tp = get_free_pool();
??for(int i=0;i<300;i++)
??{
???task_info *ti = new task_info();
???ti->set_task_id("1");

???tp.task_list->push_back(*ti);
??}
??tp.list_state = 1;*/
??//ReleaseMutex(hMutex);
?}

?//WaitForSingleObject(hMutex,INFINITE);

?////while(true)
?//{
?//?for(int i=0;i<30000;i++)
?//?{
?//??task_info *ti = new task_info();
?//??ti->set_task_id("1");

?//??task_list->push_back(*ti);
?//?}
?//?if(task_list->size()>8000)
?//?{
?//??Sleep(1000);
?//?}
?//}

?//ReleaseMutex(hMutex);

?return 0;
}

DWORD WINAPI Thread_List_Out(LPVOID lpParam)
{
?int i=0;
?while(1)
?{
??//WaitForSingleObject(hMutex,INFINITE);
??//task_pool tp? = get_buzy_pool();
??
??cout<<"size--------- :"<<task_list_out.size()<<endl;
??char* pInfo = new char[10]; //create dynamic msg
??sprintf(pInfo,"msg_%d",i++);
??????? if(!PostThreadMessage(ThreadID,MY_MSG,(WPARAM)pInfo,0))//post thread msg
??????? {
??????????? printf("post message failed,errno:%d\n",::GetLastError());
??????????? delete[] pInfo;
??????? }

??//task_pool_list.remove(tp);
??//tp.list_state = 0;
??//tp.task_list->clear();
??//ReleaseMutex(hMutex);

??Sleep(1000);
?}
?/*WaitForSingleObject(hMutex,INFINITE);

?while(true)
?{
??cout<<"size--------- :"<<task_list->size()<<endl;
??task_list->clear();
??Sleep(1000);
?}
?
?ReleaseMutex(hMutex);*/

?return 0;
}

读书人网 >编程

热点推荐