CWinThread 线程管理

CWinThread* m_pSendThread;   // 初始化 m_pSendThread = NULL;


//启动

m_pSendThread = AfxBeginThread(SendFileThreadFunc,this, THREAD_PRIORITY_ABOVE_NORMAL, 0, CREATE_SUSPENDED);

m_pSendThread->m_bAutoDelete = FALSE;//手动删除

m_pSendThread->ResumeThread();


//关闭

if (m_pSendThread != NULL )
{
m_bIsSendFile = FALSE;     //volatileBOOL m_bIsSendFile   线程函数中的一个中断标记

waiteMSGAndObject(m_pSendThread->m_hThread);  //等待线程的结束


m_pSendThread->m_bAutoDelete = TRUE;
delete m_pSendThread;
m_pSendThread = NULL;
}


//MsgWaitForMultipleObjects  
void waiteMSGAndObject( HANDLE handle )
{
DWORD dwRet = 0;
MSG msg;
while (TRUE)
{
//wait for m_hThread to be over,and wait for
//QS_ALLINPUT(Any message is in the queue)
dwRet = MsgWaitForMultipleObjects (1, &handle,   FALSE, INFINITE, QS_ALLINPUT);
switch(dwRet)
{
case WAIT_OBJECT_0: 
break; //break the loop
case WAIT_OBJECT_0 + 1:
//get the message from Queue
//and dispatch it to specific window
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
DispatchMessage(&msg); 
continue;
default:
break; // unexpected failure
}
break;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值