我建立的线程为什么只运行了一次?
VC2015 单个对话框
在对话框类中添加:
public:
CWinThread *mpHidReadThread; // 声明线程名字
static UINT ReadHidData(LPVOID pParam);
然后在.CPP文件中添加
unsigned long int TestNum=0;
UINT CSENSOR_HIDDlg::ReadHidData(LPVOID pParam)
{
TestNum++;
return 1; // 在运行的时候为了看到线程结束之后的返回值,以方便验证线程确实执行了
}
void CSENSOR_HIDDlg::OnBnClickedButtonSendData()
{
if(mpHidReadThread == NULL)
mpHidReadThread = AfxBeginThread(
ReadHidData, // 线程的入口函数,声明一定要如下: UINT MyThreadFunction( LPVOID pParam );
this, // 传递入线程的参数,类型为LPVOID,所以我们可以传递一个结构体入线程.
THREAD_PRIORITY_NORMAL, //
0, //
0, // 0:创建线程后就开始运行。
NULL); //
CString csTxt;
csTxt.Format(_T("%d"), TestNum);
m_BootMessage.SetWindowTextW(csTxt);
}
发现 TestNum总是等于 1,运行了一次,实际单步跟踪也是这样
不知道什么原因