博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mfc 创建线程函数AfxBeginThread,线程中访问mfc控件
阅读量:4304 次
发布时间:2019-05-27

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

转字http://blog.csdn.net/guomsh/article/details/10377993

1. C++ 中如何定义线程函数

     有两种方法:a. 定义线程函数为全局函数    b. 定义线程函数为类的静态成员函数
2. C++中的线程函数如何访问类中的成员变量
    针对线程函数为类的静态成员进行说明。如果是静态数据成员,当然可以直接访问,但是如果要访问非静态数据成员,直接访问是做不到的。如果要想在线程函数中访问和操作类的非静态成员变量,可以把线程函数作为一个适配器,在适配器中调用类的非静态成员函数。例如:
class CMyClass
{
public:
    void TestFunc();
    static int ThreadFunc(LPVOID pParam);// Adapter
protected:
    int ThreadFuncKernal();// Kernal
}
void CMyClass::TestFunc()
   {
        AfxBeginThread(TreadFunc, this);
   }
   // Thread function Adapter
   int CMyClass::ThreadFunc(LPVOID pParam) //这个是线程,声明时使用static关键字 ,不能访问控件
   {
       CMyClass *pObj = (CMyClass *)pParam;
       return pObj->ThreadFuncKernal();
   }
   // Thread function kernal
   int CMyClass::ThreadFuncKernal() //在这里可以访问mfc的控件
   {
       while(1)
       {
           // my thread
           // to control class non-static member
       }
       return 0;
   }

你可能感兴趣的文章
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>
Sqoop往Hive导入数据实战
查看>>
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>
Django 源码阅读:url解析
查看>>
Docker面试题(一)
查看>>
第一轮面试题
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
一、redis面试题及答案
查看>>