为了账号安全,请及时绑定邮箱和手机立即绑定

好像两个线程都没有得到执行权限,是消息响应函数里不能写多线程还是其他原因呢,求解释,在线等

好像两个线程都没有得到执行权限,是消息响应函数里不能写多线程还是其他原因呢,求解释,在线等

C
莫回无 2023-03-03 18:14:11
主要是txt文件比较大(25G),在对话框中有个编辑框,显示信息,有个button控件,当点击button控件时进入消息响应函数,然后在消息响应函数里创建2个线程,一个用于从文件中循环读取一块数据到缓冲区再存入空闲空间,另一个用于从空闲空间取出一块数据进行处理。在消息响应函数中:HANDLE readHandle=CreateThread(NULL,0,ReadThread,NULL,0,NULL);HANDLE manageHandle=CreateThread(NULL,0,ManageThread,NULL,0,NULL);CloseHandle(readHandle);CloseHandle(manageHandle);hMutex = CreateMutex(NULL,TRUE,NULL);ReleaseMutex(hMutex);在第一个线程中(第二个类似):DWORD WINAPI ReadThread( LPVOID lpParameter ){........do{WaitForSingleObject(hMutex,INFINITE);.......ReleaseMutex(hMutex);}while(....);......}
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

可以写多线程的,你的线程应该是执行了的。
你可以在线程的开始的地方放一个AfxMessageBox("OK");进行测试。
你没有看到执行,估计是WaitForSingleObject(hMutex,INFINITE);一直在等信号。

查看完整回答
反对 回复 2023-03-06
?
ITMISS

TA贡献1871条经验 获得超8个赞

hMutex是全局变量么?先把WaitForSingleObject(hMutex,INFINITE);删除掉看看

查看完整回答
反对 回复 2023-03-06
  • 2 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信