赞
踩
直接上代码:
// test.h
class Test
{
public:
Test();
~Test();
void check();//子线程想要调用的函数
static DWORD WINAPI Fun(LPVOID lpParamter); //子线程函数
};
// test.cpp
void Test::check() {
for (int i = 0; i < 10; i++) {
printf("%d : Fun A Thread Fun Display!!\n", i);
Sleep(100);
}
}
DWORD WINAPI Test::Fun(LPVOID lpParamter)
{
Test *plocal = (Test*)lpParamter;
plocal->check();
return 0L;
}
// 测试代码 main.cpp
#include <windows.h> #include "test.h" #include <iostream> using namespace std; int main() { Test test; HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Test::Fun, &test, 0, NULL);//创建线程 CloseHandle(hThread);//关闭线程句柄 for (int i = 0; i < 10; i++) { printf("%d : Main Thread Display!\n", i); Sleep(100); } system("pause"); return 0; }
运行结果:
注意:
HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Test::Fun, &test, 0, NULL);
第三个参数、第四个参数的不同。plocal->check();
,就是运用指针的方式调用成员函数check()
。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。