首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WaitForSingleObject中,timeout=INFINITE是否等于timeout=-1?

在WaitForSingleObject中,timeout=INFINITE是否等于timeout=-1?
EN

Stack Overflow用户
提问于 2013-10-25 08:12:06
回答 2查看 4.2K关注 0票数 2

我正在使用其他人编写的一些Visual Basic for Applications (VB6.3)代码,他们写道:

代码语言:javascript
复制
WaitForSingleObject SEI.hProcess, -1

它所在的进程应该在文本框中返回一些数据;有时它无法返回任何内容,我认为这是因为它超时了。该代码是否与以下代码相同:

代码语言:javascript
复制
WaitForSingleObject SEI.hProcess, INFINITE

???

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-10-25 08:23:57

WaitForSingleObject的超时实际上是一个DWORD,它是一个无符号的32位整数。INFINITE被定义为0xFFFFFFFF,但是映射到无符号类型的-1会换行,并在大多数整数表示中成为此值。

的代码是否与以下代码相同:

实际上,是的。

票数 7
EN

Stack Overflow用户

发布于 2020-02-18 14:14:15

因此,基本上您的问题转换为WaitForSingleObject SEI.hProcess, -1WaitForSingleObject SEI.hProcess, INFINITE是否相同?

正如里德的回答所说,是的,它们是一样的,WaitForSingleObject SEI.hProcess, -3999也是一样的。基本上,任何负数都会绕回并成为可用的最大无符号整型,这恰好是INFINITE的值。

现在,这是否意味着你应该使用这两个中的一个。不是的。你应该始终使用文档化的版本,否则C++对于未文档化的特性具有未定义的行为是非常有名的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19578949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档