首页 > 代码库 > mfc线程

mfc线程

1、生成线程

HANDLE hthread; //线程句柄
hthread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)threadFunc,NULL,0,NULL);//获得句柄
CloseHandle(hthread);

2、线程函数

threadFunc()//必须是静态的

{

  while(1)
    {
    Sleep(2000);
    AfxMessageBox(_T("OK!"));

    }

}

注意:

线程与函数

线程函数必须是全局函数,或者是类的静态成员函数,因为非静态成员函数有this指针,而在进程中无法访问此指针。

但是静态成员函数只能访问静态成员,解决此问题途径:

1. 就是在调用静态成员函数时将this指针作为参数传入,通过该指针访问非静态成员。

2. 不将线程函数定义为类的静态成员函数,而是定义为类的友元函数,这样函数线程也可以有类成员函数相同的权限。

mfc线程