2014-03-14 72 views
58

即使我从未明确地创建任何线程,我仍然在Winforms应用程序中看到这些消息。这是为什么发生?我已经四处寻找解释,但很难说出这样的问题。为什么我看到多个“线程0x22c8已退出代码259(0x103)”。消息

我使用视觉工作室2013,这是调试输出,我很担心:

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). 
+0

可能重复[什么是线程退出代码(http://stackoverflow.com/questions/18887864/what-is-a-thread -exit-code) –

回答

56

从MSDN文档:

备注

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

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

这似乎是一个错误:的

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

+29

很容易关闭这些消息(我正在使用VS 2013)。只需在输出窗口中右键单击并取消选中“线程退出消息”框。对我来说,我还必须取消选中“模块加载消息”来清除输出。 –

相关问题