为什么OpenMutex返回NULL?

VIPVIPVIP 2014-03-17 11:36:50
我自己照书上写了个线程程序,创建3个线程,每个线程的代码基本一样,只是一些命名和显示的坐标参数不一样。ThreadProc也是共用的一个,其中每个线程都会OpenMutex一下各自mutex对象,判断一下返回值是否为空,结果就第一个线程的返回值不为空,剩下2个都返回空。但是换一台电脑执行,却没问题。是不是跟CPU个数有关啊?

代码我就不贴了,话说这CSDN上打字真的很艰难,感觉卡得要死。远没有在贴吧发帖打字来得流畅啊。
...全文
218 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
VIPVIPVIP 2014-03-18
  • 打赏
  • 举报
回复
哎,今天再仔细看了一下,是因为把char数组转成宽字符时,目标数组都用的同一字符数组,结果创建了3个同名对象。
Eleven 2014-03-18
  • 打赏
  • 举报
回复
GetLastError()看看错误码是什么?
__cc__ 2014-03-18
  • 打赏
  • 举报
回复
引用 楼主 VIPVIPVIP 的回复:
我自己照书上写了个线程程序,创建3个线程,每个线程的代码基本一样,只是一些命名和显示的坐标参数不一样。ThreadProc也是共用的一个,其中每个线程都会OpenMutex一下各自mutex对象,判断一下返回值是否为空,结果就第一个线程的返回值不为空,剩下2个都返回空。但是换一台电脑执行,却没问题。是不是跟CPU个数有关啊? 代码我就不贴了,话说这CSDN上打字真的很艰难,感觉卡得要死。远没有在贴吧发帖打字来得流畅啊。
要么是线程共享之间出了问题,要么创建出了问题。这个创建互斥对象和CPU没有关系。
oyljerry 2014-03-18
  • 打赏
  • 举报
回复
open的时候mutex是不是还没有创建
yaozhiyong110 2014-03-18
  • 打赏
  • 举报
回复
你getlasterror看下就知道什么错了撒...
lijianli9 2014-03-18
  • 打赏
  • 举报
回复
用getlasterror看下。

15,473

社区成员

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

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