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

时间:2014-03-14 03:07:08

标签: c# multithreading visual-studio exit-code

我在Winforms应用程序中获取了大量这些消息,即使我从未明确地创建任何线程。为什么会这样?我已经四处寻找解释,但很难说出这样的询问。

我正在使用Visual Studios 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).

1 个答案:

答案 0 :(得分:57)

来自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

相关问题