_beginthreadex 实践小结
来源:互联网 发布:ug四轴加工编程步骤 编辑:程序博客网 时间:2024/06/04 18:13
问题1、_beginthreadex创建线程时,返回:0
:参数不对,导致
说明:1参,线程的安全等级,经常使用NULL
2参,线程的堆栈空间大小,如果为0,使用和调用进程相同的空间,经常使用0
3参,线程函数的起始地址,这个是我们线程任务的处理中心
4参,线程函数的参数,与一般的函数参数类似,如果需要传入多个参数,可以使用结构
5参,线程的起始状态,0 == 立即执行, CREATE_SUSPEND == 暂时挂起
6能,线程的ID,线程的标识,至今还没有使用到它的地方
问题2、线程和事件的结合使用
我通常使用事件的有无消息实现线程的定时执行功能,简单步骤如下:
2.1、创建事件对象 HANDLE hMsgEvent = ::CreateEvent(NULL,/*安全属性*/, FALSE/*是否手动重置事件*/, TRUE/*事件的初始信号状态*/, NULL/*事件的名称,一般设置成NULL即可*/); long lTimeInterval = 60000; //线程的执行间隔
2.2、使用_beginThreadEx()创建线程
2.3、在线程函数中,
unsigned _stdcall ThreadProc(void * pArgu)
{
while(bThreadExit)
{
DWORD dwWaitRet = ::WaitForSingleObject(hMsgEvent, lTimeInterval);
switch(dwWaitRet)
{
case WAIT_OBJECT_0:
//有信号
break;
case WAIT_TIMEOUT:
//超时
//你要间隔执行的代码
//......
break;
case WAIT_FAILED:
//出错
break;
default:
break; //常规处理
}
}
return 0;
}
备注:我只是利用超时实现线程的定时触发,你也可以设计多种形式的定时触发机制。
- _beginthreadex 实践小结
- _beginthreadex
- _beginthreadex
- _beginthreadex()
- _beginthreadex
- _beginthreadex
- 单元测试实践小结
- 单元测试实践小结
- 单元测试实践小结1
- 单元测试实践小结3
- 单元测试实践小结2
- webservice 开发实践小结
- JNI技术实践小结
- JNI技术实践小结
- 单元测试实践小结
- linux开发实践小结
- DJango 实践小结
- JNI技术实践小结
- sqlserver常用函数/存储过程/数据库角色
- WAP上传图片代码
- Asp.net页面传递参数的几种方法对比讲解
- 在Eclipse中加入Android源码
- Linux下安装OpenSSL练手文档
- _beginthreadex 实践小结
- 将一个datatable序列化和压缩
- ASP.NET服务器控件使用之GridView
- 软件测试框架——自动化测试框架(专题)
- 12864液晶显示问题
- 不能一辈子打工,程序员未来出路在哪里?
- Spring事务配置的五种方式(一)
- C++类的默认成员函数
- 终于用boost的正则库写完了一个文本转换