帮我看下这段代码错哪

gxx2019 2009-09-04 09:17:40
void Cthread11Dlg::OnBnClickedButton1()
{
hThread1 = CreateThread(NULL, 0, Func1, NULL, 0, NULL);
hThread2 = CreateThread(NULL, 0, Func2, NULL, 0, NULL);
CloseHandle(hThread1);
CloseHandle(hThread2);
}

DWORD WINAPI Cthread11Dlg::Func1(LPVOID lpparameter)
{
Cthread11Dlg* p = (Cthread11Dlg*)lpparameter;
WaitForSingleObject(hMutex, INFINITE);
Sleep(30);
p->Add1();
ReleaseMutex(hMutex);
return 0;
}

DWORD WINAPI Cthread11Dlg::Func2(LPVOID lpparameter)
{
Cthread11Dlg* p = (Cthread11Dlg*)lpparameter;
WaitForSingleObject(hMutex, INFINITE);
Sleep(30);
p->Add2();
ReleaseMutex(hMutex);
return 0;
}

void Cthread11Dlg::Add1()
{
m_list.AddString(_T("线程1运行"));
}

void Cthread11Dlg::Add2()
{
m_list.AddString(_T("线程2运行"));
}
当我点Button1按钮时,创建两线程,分别向ListBox写入线程1运行,线程2运行
为什么我点Button1时,会弹出应用程序错误,"0x787af9cc"指令中“0x00000098”内存,不能为read?
...全文
42 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
清水火 2009-09-04
  • 打赏
  • 举报
回复
无语了,你传进去的咋就是个空值呢。
改成
hThread1 = CreateThread(NULL, 0, Func1, this, 0, NULL);
hThread2 = CreateThread(NULL, 0, Func2, this, 0, NULL);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧