我用一个按钮生成两个线程并挂起,启动线程1,运行到最后启动线程2,挂起自身,线程2运行到最后启动线程1,挂起自身。代码大致如下: //按钮中的代码,this是一个类的指针,包含有hReceive,hDealData两个成员 hReceive = CreateThread(NULL,0,ReceiveDataProc,this,CREATE_SUSPENDED,NULL); //挂起,等待执行 hDealData = CreateThread(NULL,0,DealDataProc,this,CREATE_SUSPENDED,NULL); //挂起,等待执行 ResumeThread(hReceive); //线程1 DWORD WINAPI ReceiveDataProc(LPVOID pParam) { CClass *This; This = (CClass *)pParam; while(1) { .......... ResumeThread(This->hDealData);//启动处理数据线程 SuspendThread(This->hReceive);//把自己挂起来 } return 1; } //线程2 DWORD WINAPI DealDataProc(LPVOID pParam) { CClass *This; This = (CClass *)pParam; while(1) { .......... ResumeThread(This->hReceive); SuspendThread(This->hDealData); } return 1; }
MFC 实现两个子线程交叉运行
最新推荐文章于 2022-02-09 20:56:23 发布