MFC类内创建线程,使用内部变量方法
2014-07-26 09:09
363 查看
问题:MFC中创建一个新的线程,由于创建的线程需要说明成static,而static类型是不能直接使用类的内部变量的,解决办法是把this指针做为参数传递给线程,最好在线程内直接调用一个类内函数,然后在这个函数内就可以自由的使用所有变量,省掉所有的this->
一、创建线程:传递this指针
HANDLE hThead=CreateThread(NULL,0,ThreadProcAccept,(LPVOID)this,0,NULL);
CloseHandle(hThead);
二、线程中使用this调用一个类内函数
DWORD WINAPI CViewerDlg::ThreadProcAccept(LPVOID lpParameter)
{
CViewerDlg * pTaskMain = (CViewerDlg *) lpParameter; //把this指针传进来
pTaskMain->my_accept();
return 0;
}
三、在函数内自由使用变量
void CViewerDlg::my_accept(void)
{
//接收数据
}
一、创建线程:传递this指针
HANDLE hThead=CreateThread(NULL,0,ThreadProcAccept,(LPVOID)this,0,NULL);
CloseHandle(hThead);
二、线程中使用this调用一个类内函数
DWORD WINAPI CViewerDlg::ThreadProcAccept(LPVOID lpParameter)
{
CViewerDlg * pTaskMain = (CViewerDlg *) lpParameter; //把this指针传进来
pTaskMain->my_accept();
return 0;
}
三、在函数内自由使用变量
void CViewerDlg::my_accept(void)
{
//接收数据
}
相关文章推荐
- WCE下创建MFC的COM对象及使用方法(一)
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- Java:使用匿名内部类在方法内部定义并启动线程
- MFC中CreatThread()创建线程使用详解
- 在MFC中类内部建立线程处理函数以便调用类的成员函数和变量
- 如何在MFC线程中使用控件的成员变量和函数
- MFC中使用线程创建窗口的问题
- 结构变量作为方法的参数调用,在方法内部使用的“坑”你遇到过吗?
- IOS_Swift1之宏、闭包、UITableView、内部变量、类方法的使用
- 对Java方法内部使用this访问成员变量的深入理解
- MFC中 如何在类对象内部创建线程(AfxBeginThread())
- 使用内部线程维护变量持久更新
- MFC 线程创建在使用构造函数进行初始化线程的时候,创建线程实例了,但是线程并没有执行的问题
- MFC中线程创建的一般方法
- Java:使用匿名内部类在方法内部定义并启动线程
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- 线程的创建同步退出案例和使用方法
- MFC主线程安全关闭子线程的方法:使用PostThreadMessage在Win32线程间传递消息
- MFC中CAsyncSocket及其派生类对象跨线程使用方法
- Java:使用匿名内部类在方法内部定义并启动线程