帮我看下这段代码错哪

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?
...全文
19 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
清水火 2009-09-04
无语了,你传进去的咋就是个空值呢。
改成
hThread1 = CreateThread(NULL, 0, Func1, this, 0, NULL);
hThread2 = CreateThread(NULL, 0, Func2, this, 0, NULL);
回复
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
社区公告
暂无公告