封装windows 线程创建函数_beginthreadex和createthread函数的类
2016-08-14 11:03
567 查看
我这个经验去写多线程编程函数的例子,实在有点太低级,_beginthreadex 虽然足以支持多线程,但是使用的时候传一堆没用的参数,每次使用就得查msdn,把参数给搞全,现在讲究效率的时候,每次都需要把参数补全,是不是太繁琐,为了提高效率,我就封装了这个类,供大伙使用
class api_Thread_lu
{
begin_Thread(unsigned int (*pFunc)(void *),void *Param)
{
//核心的一个数据结构 包含一个用户数据指针和一个线程函数地址
INFO_THREAD *lpInfoThread = NULL;
lpInfoThread = new struct INFO_THREAD;
lpInfoThread->pUserDate = Param;
//用户自己定义的线程函数就放在这里了,通过调用beginthreadex 来启动
lpInfoThread->pThreadFunc = pFunc;
_beginthreadex(NULL,0,ThreadFunc,lpInfoThread,0,&luThreadID);
unsigned int luThreadID = 0;//标记线程ID 用不用都行
return TRUE;
}
void *ThreadFunc(void * lpParam)
{
INFO_THREAD *lpThreadInfo = (INFO_THREAD *)lpParam;
//用户自定义的函数被执行的地方,线程执行完毕之后,pThreadFunc才返回 返回后退出该函数
lpThreadInfo->pThreadFunc(lpThreadInfo->pUserDate);
if (lpThreadInfo != NULL)
{
delete lpThreadInfo;//
lpThreadInfo = NULL;
}
_endthreadex(0);
return 1;
}
}
使用的时候比windows的函数使用方便多了,这样简单的两行调用线程就可以跟啰里啰唆的传统很多行代码可以搞定的问题
api_Thread_lu loThread;
loThread.begin_Thread(testFunc, this);//testFunc就是你自己定义的线程入口函数
好了这两行 就可以建线程了 是不是比用widows那一套建立方便多了哪,好用的点赞
class api_Thread_lu
{
begin_Thread(unsigned int (*pFunc)(void *),void *Param)
{
//核心的一个数据结构 包含一个用户数据指针和一个线程函数地址
INFO_THREAD *lpInfoThread = NULL;
lpInfoThread = new struct INFO_THREAD;
lpInfoThread->pUserDate = Param;
//用户自己定义的线程函数就放在这里了,通过调用beginthreadex 来启动
lpInfoThread->pThreadFunc = pFunc;
_beginthreadex(NULL,0,ThreadFunc,lpInfoThread,0,&luThreadID);
unsigned int luThreadID = 0;//标记线程ID 用不用都行
return TRUE;
}
void *ThreadFunc(void * lpParam)
{
INFO_THREAD *lpThreadInfo = (INFO_THREAD *)lpParam;
//用户自定义的函数被执行的地方,线程执行完毕之后,pThreadFunc才返回 返回后退出该函数
lpThreadInfo->pThreadFunc(lpThreadInfo->pUserDate);
if (lpThreadInfo != NULL)
{
delete lpThreadInfo;//
lpThreadInfo = NULL;
}
_endthreadex(0);
return 1;
}
}
使用的时候比windows的函数使用方便多了,这样简单的两行调用线程就可以跟啰里啰唆的传统很多行代码可以搞定的问题
api_Thread_lu loThread;
loThread.begin_Thread(testFunc, this);//testFunc就是你自己定义的线程入口函数
好了这两行 就可以建线程了 是不是比用widows那一套建立方便多了哪,好用的点赞
相关文章推荐
- windows笔记-创建线程的另一个函数_beginthreadex
- windows笔记-创建线程的另一个函数_beginthreadex
- windows笔记-创建线程的另一个函数_beginthreadex
- 在类中使用_beginthreadex函数创建线程并访问该类中的数据成员
- -创建线程的另一个函数_beginthreadex
- 创建线程的另一个函数_beginthreadex
- _beginthreadex 线程 函数 解决假死
- 一组便于创建线程和线程池的简单封装函数
- CreateThread()线程创建函数,AfxBeginThread等
- _beginthreadex创建线程
- 多线程篇(一)——线程的创建方法CreateThread和_beginthreadex
- 封装创建一个windows下线程
- CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别(1)
- CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别
- 用_beginthreadex创建线程
- windows笔记-创建线程的函数CreateThread
- windows环境编程: 线程创建函数 设置线程名 隐藏DOS窗口 重定向IO
- 采用_beginthread/_beginthreadex函数创建多线程
- 使用_beginthreadex 创建线程并实现多线程同步
- WINDOWS-API:关于线程CreateThread,_beginthead(_beginthreadex),AfxBeginThread