MFC 类内线程函数
2024-09-18 11:27:24
线程函数必须是全局函数或静态成员函数。
非静态成员函数都有一个隐含的参数用于接收所属类的this指针,一般情况下调用时参数不匹配。所以static可以干掉隐含的参数。
但是没有了this,类内的函数就无法调用了。所以AfxBeginThread(线程函数,(LPVOID)this),this又回来了,这样可以调用啦。
CWinThread* AFXAPI AfxBeginThread(
AFX_THREADPROC pfnThreadProc, //线程的入口函数,声明一定要如下: UINT MyThreadFunction( LPVOID pParam );
LPVOID pParam, //线程参数
int nPriority,
UINT nStackSize,
DWORD dwCreateFlags,
LPSECURITY_ATTRIBUTES lpSecurityAttrs)
【案例】
//头文件中声明 static UINT MyThreadFunction(LPVOID pParam);//定义线程入口函数
UINT CMFCApplication25Dlg::MyThreadFunction(LPVOID pParam)//线程入口函数,具体实现
{
CMFCApplication25Dlg* dlg = (CMFCApplication25Dlg*)pParam;//this赋给dlg
for (int i = ; i <= ; i++)
{
dlg->SetDlgItemInt(IDC_STATIC, i, false);//通过类的对象来操作
Sleep();
}
return ;
} void CMFCApplication25Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
AfxBeginThread(MyThreadFunction, (LPVOID)this);//this赋给线程入口函数的参数pParam
}
【参考】
https://blog.csdn.net/MissXy_/article/details/80330263
最新文章
- 【转】CentOS上部署PPTP和L2TP over IPSec简要笔记
- Ubuntu 14.04 server ssh 远程服务遇到的一点事儿
- django 快速搭建blog
- Construct Bounding Sphere
- [转]IE11下Forms身份认证无法保存Cookie的问题
- 【Python】Python重新学习
- Android进阶笔记19:onInterceptTouchEvent、onTouchEvent与onTouch
- 页面mask css
- Android软键盘遮挡布局的那些事
- c#核心基础-委托
- pycharm 破解密码
- eclipse启动web应用 报错
- 唐平中讲座笔记 Reinforcement mechanism design 20171107
- 三维dem
- POJ 1051
- python学习之老男孩python全栈第九期_数据库day002知识点总结 —— MySQL数据库day2(全部)
- centos下Zabbix Agent端部署和安装
- CF235C_Cyclical Quest
- 【BZOJ1529】[POI2005]ska Piggy banks Tarjan
- [BZOJ4423][AMPPZ2013]Bytehattan(对偶图+并查集)