
请教CreateThread使用本类的成员函数问题
2个回答
展开全部
一般这样调就可以了:
CreateThread(NULL,0,ThreadProc,NULL,0,NULL)
第三个参数就是新线程的函数名,如果需要给新线程函数传递值的话就在第四个参数传。
新线程回调函数是这样的:
DWORD WINAPI ThreadProc(PVOID pParam)
{
return 0;
}
CreateThread(NULL,0,ThreadProc,NULL,0,NULL)
第三个参数就是新线程的函数名,如果需要给新线程函数传递值的话就在第四个参数传。
新线程回调函数是这样的:
DWORD WINAPI ThreadProc(PVOID pParam)
{
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include <windows.h>
class A
{
public:
void b(){ std::cout<<"success"<<std::endl; }
};
struct Parameter
{
void (A::*funcaddr)();
A *a;
};
DWORD WINAPI ThreadProc(PVOID pParam)
{
Parameter *p=(Parameter*)pParam;
(p->a->*p->funcaddr)();
return 0;
}
int main()
{
A a;
Parameter p={&A::b,&a};
CreateThread(nullptr,0,ThreadProc,&p,0,nullptr);
return 0;
}
#include <windows.h>
class A
{
public:
void b(){ std::cout<<"success"<<std::endl; }
};
struct Parameter
{
void (A::*funcaddr)();
A *a;
};
DWORD WINAPI ThreadProc(PVOID pParam)
{
Parameter *p=(Parameter*)pParam;
(p->a->*p->funcaddr)();
return 0;
}
int main()
{
A a;
Parameter p={&A::b,&a};
CreateThread(nullptr,0,ThreadProc,&p,0,nullptr);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询