为什么我的WaitForSingleObject返回值还是258啊? 在线等待中。。。。。。。。。。。。。。。。

zy_cl 2008-12-10 10:07:19
程序过程如下:
1----------------------OpenMutex
2---------------------OpenEvent DBWIN_BUFFER_READY
3-----------------------OpenEvent DBWIN_DATA_READY
4-----------------------OpenFileMapping DBWIN_BUFFER
5----------------------- 映射调试缓冲区
6-------------------------建一个线程
m_Capturer = gcnew Thread(gcnew ThreadStart(Capture));
m_Capturer->Start();
7-------------------------Capture方法中
SetEvent(m_AckEvent);
int ret = WaitForSingleObject(m_ReadyEvent, 1000);


ret的返回值还是258---------超时,
有知道的告述一声啊-------------
...全文
1502 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
哎。。。。。。。。。。。。。竟然在等待m_ReadyEvent的,取弄活另外一个的。。。。。。。傻了。。。。。。。
给分了。。。。。。。。。
qqwx_1986 2008-12-10
  • 打赏
  • 举报
回复
看看你的CreateEvent是怎么创建的 这个DBWIN_DATA_READY
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
你很牛................
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
//-----------------------OpenEvent DBWIN_DATA_READY
m_ReadyEvent = OpenEvent(SYNCHRONIZE,FALSE,"DBWIN_DATA_READY");


SetEvent(m_AckEvent);是signal buffer ready的啊
qqwx_1986 2008-12-10
  • 打赏
  • 举报
回复
SetEvent(m_AckEvent); //这个干嘛的 是不是这样哦==》SetEvent(m_ReadyEvent);
int ret = WaitForSingleObject(m_ReadyEvent, 1000);
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
我写的这个是为了读写OutputDebugString中 的信息的, 通过建一个线程在 Capture 中读取所有的当下的线程的 ID
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
1- m
2- m_AckEvent
3- m_ReadyEvent
4- m_SharedFile
5- m_SharedMem
这是每一步的所对应的参数
为了大家看的更加明白点。。。。。。。。。。。。。。
qqwx_1986 2008-12-10
  • 打赏
  • 举报
回复
还有看看你要等待的是不是人工重置对象 如果是的话你另外个线程用完之后有没有重置为有信号状态
还是几个不止两个线程共用这个事件对象出了问题
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
m_ReadyEvent一直没有信号? 什么意思? 我是对1到5 每个都判断了一下,如果他们 是 空的话 就让它抛一个异常,我看没有异常抛出, 所以我以为 m_ReadyEvent 是有信号的。
-----------我 这样做对吗?
  • 打赏
  • 举报
回复
光看这个看不出原因,m_ReadyEvent一直没有信号
zy_cl 2008-12-10
  • 打赏
  • 举报
回复
无限等待的话它就一直等下去,没有个结束了,试过了,不过是否死锁我再来看一下
qqwx_1986 2008-12-10
  • 打赏
  • 举报
回复
The WaitForSingleObject function returns when one of the following occurs:

The specified object is in the signaled state.
The time-out interval elapses.

你说明1000ms过去了你要等待的事件对象还是没有等到有信号

检查是不是哪里死锁了 或者把第二个参数设为 INFINITE 无限等待

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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