博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CWinThread 线程管理
阅读量:4298 次
发布时间:2019-05-27

本文共 1034 字,大约阅读时间需要 3 分钟。

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;
}
}

转载地址:http://jrnws.baihongyu.com/

你可能感兴趣的文章
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>