C++ 创建的线程如何调用类函数

使用 CreateThread 的
使用 _beginthreadex 的两种
讲详细一点,附代码我可以看的更直观些,谢谢

把类指针做为参数传进去线程函数里,然后用参数调用类里的函数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-04
大概写了些,没调试过,以前用过。

static void CPPThread(LPVOID lpParameter)
{
CPPClass *pClass = (CPPClass *)lpParameter;
//add your code
pClass->Fun();
}

class CPPClass
{
public:
CPPClass():m_CPPThreadHandle(0){}
~CPPClass(){}
int CreateCPPThread();
int CloseCPPThread();
int Fun();
protected:
HANDLE m_CPPThreadHandle;
};

int CPPClass::CreateCPPThread()
{
m_CPPThreadHandle=(HANDLE)_beginthread(CPPThread,4096,this);
if(m_CPPThreadHandle==0) return false;
}

int CPPClass::CloseCPPThread()
{
if(m_CPPThreadHandle!=0)
{
TerminateThread(m_CPPThreadHandle,0);
m_CPPThreadHandle=0;
}
}

int CPPClass::Fun()
{
//add your code
}本回答被提问者和网友采纳
相似回答