您的位置:首页 > 编程语言 > C语言/C++

《C++笔记》》 Part8 MFC中的AfxBeginThread的使用方法

2018-02-02 15:19 465 查看

《C++笔记》》 Part8 MFC中的AfxBeginThread的使用方法

参考:

1、http://blog.csdn.net/oceanlucy/article/details/7345057

2、http://blog.csdn.net/u012370255/article/details/27639601

1、【AfxBeginThread】参数,如果只是简单的传【int】类型的

//多线程函数的定义;
UINT Thread1(int pParam)
{
int nSize = pParam;
//你的其他处理代码。。。
return 0;
}

//多线程的使用部分;
int nSize = 50;
AfxBeginThread((AFX_THREADPROC)Thread1, (VOID*)nSize , THREAD_PRIORITY_NORMAL, 0, 0, NULL);


【AfxBeginThread】参数,如果要传多个参数或者传入结构体

//定义一个全局的结构体;
typedef struct SthData
{
int iStr;
int iEnd;
}*pSthData;

//多线程函数的定义;
VOID Thread1(LPVOID lpParam)
{
//获得结构体中的值;
SthData* pStcSthData = (SthData *)lpParam;
int iStr = pStcSthData->iStr;
int iEnd = pStcSthData->iEnd;

//你的其他处理代码。。。

//最后记得删除结构体的指针并指向NULL;
delete pStcSthData;
pStcSthData = NULL;
}

//多线程的使用部分;
pSthData pDataValue1 = new SthData;
memset(pDataValue1, 0x00, sizeof(SthData));
pDataValue1->iStr = 0;
pDataValue1->iEnd = 10;

AfxBeginThread((AFX_THREADPROC)Thread1, pDataValue1, THREAD_PRIORITY_NORMAL, 0, 0, NULL);


注:结构体创建后在析构时需要:

delete pDataValue1 ;
pDataValue1 = NULL;  //防止野指针


否则在调试传参时,看到的结构体内部数据为乱码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: