设为首页 加入收藏

TOP

C++ Part8 MFC中的AfxBeginThread的使用方法(代码实例)
2018-02-06 13:13:00 】 浏览:117
Tags:Part8 MFC AfxBeginThread 使用方法 代码 实例

C++ Part8 MFC中的AfxBeginThread的使用方法(代码实例)

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;  //防止野指针

否则在调试传参时,看到的结构体内部数据为乱码。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++高级编程之对象模型、const、n.. 下一篇C++面向对象编程之对象模型(obje..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目