C++,在线程中调用类的成员函数,为什么数据偶尔会出错,偶尔就是对的?
线程是在这里面创建的
void CSocketThread::CreateSocketThread()
{
m_hThread = (HANDLE)_beginthreadex(NULL,0,ClientThread,this,0,NULL);
Sleep(1000);
if (m_hThread == NULL)//如果线程创建失败
{
printf("创建线程失败:%d\n",WSAGetLastError());
}
}
unsigned int WINAPI ClientThread(LPVOID lpParam)
{
CSocketThread *pSocketThread = (CSocketThread*)lpParam;//这里转换的时候显示成员变量的值不变
CMainWin *pMainWin = pSocketThread->Get_pMainWin();//偶尔出错
ECOMMUNICATETYPE eKind = pSocketThread->Get_eCommunicateType();////偶尔出错
char* chrRecBuffer = pSocketThread->GetRevBuf();//偶尔出错
}
void CSocketThread::CreateSocketThread()
{
m_hThread = (HANDLE)_beginthreadex(NULL,0,ClientThread,this,0,NULL);
Sleep(1000);
if (m_hThread == NULL)//如果线程创建失败
{
printf("创建线程失败:%d\n",WSAGetLastError());
}
}
unsigned int WINAPI ClientThread(LPVOID lpParam)
{
CSocketThread *pSocketThread = (CSocketThread*)lpParam;//这里转换的时候显示成员变量的值不变
CMainWin *pMainWin = pSocketThread->Get_pMainWin();//偶尔出错
ECOMMUNICATETYPE eKind = pSocketThread->Get_eCommunicateType();////偶尔出错
char* chrRecBuffer = pSocketThread->GetRevBuf();//偶尔出错
}
...全文
相关推荐
内联函数&类的成员函数
### 类的成员函数类的成员函数是类的一部分,用于操作类的属性或执行某些特定任务。成员函数可以访问类的所有私有和保护成员,这使得它可以更有效地管理和操作类的数据成员。
一般函数指针和类的成员函数指针
然而,当涉及到类的成员函数时,事情变得稍微复杂一些,因为类的成员函数通常包含一个隐含的参数——`this`指针,用于引用调用该成员函数的对象实例。
C++ String 类常用成员函数汇总
C++ String 类常用成员函数汇总 C++ 的 String 类提供了多种成员函数来操作字符串,这些成员函数可以分为构造函数、字符操作、特性描述、输入输出操作和赋值五大类。
在一个类中调用另一个类的数据成员的方法-程序实现
在C++编程中,类与类之间的相互操作是常见的需求,特别是当需要访问或操作其他类的数据成员时。本文将详细讲解如何在一个类中调用另一个类的数据成员,包括两种主要的方法:对象引用和友元函数。
C++获取类的成员函数的函数指针详解及实例代码
成员函数是类的一部分,它们操作类的对象。与普通函数不同,成员函数有一个隐含的`this`指针,指向调用该函数的对象。因此,成员函数指针需要能够存储这个`this`上下文信息。


