【发布时间】:2012-10-03 23:13:16
【问题描述】:
我有一个应用程序,其中一个线程调用 SetEvent,另一个线程等待该事件。但是,从未调用过 CreateEvent。
SetEven 返回 false (ERROR_INVALID_HANDLE),WaitForSingleObject 返回 WAIT_FAILED
昨天,我们提交了一些明显不相关的内容:.rc 中的两行代码从工具栏中删除了按钮。
突然,在 realease-XP-32 上,WaitForSingleObject 返回 WAIT_TIMEOUT。
但我想知道:
1- 为什么资源中的提交(显然不相关)确实改变了 WaitForSingleObject 的返回?
2- 当我从 Visual Studio 启动应用程序 (XP32) 时,我得到的行为与直接启动应用程序时不同。 WaitForSingleObject() 返回 WAIT_FAILED 而不是超时。知道为什么吗?
【问题讨论】:
-
未定义的行为是一件美好的事情......
-
究竟什么是“WaitEvent”?让 WaitForSingleObject() 阻塞未初始化的句柄值并不是最大的谜。
-
我刚刚编辑过,感谢您的注意:WaitForSingleObject
标签: c++ multithreading events memory initialization