web-dev-qa-db-ja.com

「スレッド0x22c8がコード259(0x103)で終了しました」というメッセージが複数表示されるのはなぜですか。メッセージ

明示的にスレッドを作成していなくても、Winformsアプリケーションでこれらのメッセージが大量に表示されます。なぜこうなった?私は説明を探しましたが、このような質問をWordに伝えるのは難しいです。

私は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).
60
Mark S

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

57
tweellt