首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我看到多个“线程0x22c8已退出,代码为259 (0x103)”。消息

为什么我看到多个“线程0x22c8已退出,代码为259 (0x103)”。消息
EN

Stack Overflow用户
提问于 2014-03-14 11:07:08
回答 1查看 56.9K关注 0票数 61

我在Winforms应用程序中收到了大量这样的消息,尽管我从未显式创建过任何线程。为什么会发生这种情况?我四处寻找解释,但很难用语言表达这样的询问。

我使用的是Visual Studios 2013,这是我所关心的调试输出:

代码语言:javascript
复制
The thread 0x23a4 has exited with code 259 (0x103).
The thread 0x2884 has exited with code 259 (0x103).
The thread 0x27ec has exited with code 259 (0x103).
The thread 0x1978 has exited with code 259 (0x103).
The thread 0x1534 has exited with code 259 (0x103).
The thread 0x1ad8 has exited with code 259 (0x103).
The thread 0x2938 has exited with code 259 (0x103).
The thread 0x22c8 has exited with code 259 (0x103).
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 11:24:08

来自MSDN文档:

备注

此函数立即返回。如果指定的线程未终止且函数执行成功,则返回的状态为STILL_ACTIVE。如果线程已终止且函数成功,则返回的状态为下列值之一:在ExitThread或TerminateThread函数中指定的退出值。线程函数的返回值。线程进程的退出值。重要提示: GetExitCodeThread函数仅在线程终止后才返回由应用程序定义的有效错误代码。因此,应用程序不应使用STILL_ACTIVE (259)作为错误代码。如果线程返回STILL_ACTIVE (259)作为错误代码,则测试此值的应用程序可能会将其解释为线程仍在运行,并在线程终止后继续测试线程的完成情况,这可能会使应用程序陷入无限循环。

所以基本上它仍然时不时地检查当前的线程。

这似乎是一个bug:

http://connect.microsoft.com/VisualStudio/feedback/details/812144/vs2013-reports-incorrect-thread-exit-code

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

https://stackoverflow.com/questions/22395396

复制
相关文章

相似问题

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