2014-03-14 11 views
58

Ich bekomme eine Reihe dieser Nachrichten in meiner Winforms-Anwendung, obwohl ich nie explizit Threads gemacht. Warum passiert dies? Ich habe mich nach einer Erklärung umgesehen, aber es ist schwer, eine Anfrage wie diese zu formulieren.Warum sehe ich mehrere "Der Thread 0x22c8 wurde mit Code 259 (0x103) beendet." Nachrichten

Ich bin mit Visual Studio 2013 und das ist die Debug-Ausgabe, die ich mache mir Sorgen um:

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

möglich Duplikat [Was ein Code Fadenausgang ist] (http://stackoverflow.com/questions/18887864/what-is-a-thread -exit-code) –

Antwort

56

Von MSDN Dokumentation:

Bemerkungen

Diese Funktion sofort zurück . Wenn der angegebene Thread nicht beendet und die Funktion erfolgreich ausgeführt wurde, lautet der zurückgegebene Status STILL_ACTIVE. Wenn der Thread beendet wurde und die Funktion erfolgreich ausgeführt wird, hat der zurückgegebene Status einen der folgenden Werte: Der in der ExitThread- oder TerminateThread-Funktion angegebene Exit-Wert . Der Rückgabewert Wert von der Thread-Funktion. Der Ausgangswert des Threads Prozess. Wichtig: die GetExitCodeThread Funktion gibt einen gültigen Fehlercode zurück, der von der Anwendung nur definiert wird, nachdem der Thread beendet wird. Daher sollte eine Anwendung STILL_ACTIVE (259) nicht als Fehlercode verwenden. Wenn ein Thread STILL_ACTIVE (259) als Fehlercode zurückgibt, könnten Anwendungen, die diesen Wert testen, so interpretieren, dass der Thread noch läuft und weiterhin die Beendigung des Threads nach Beendigung des Threads testet könnte die Anwendung in eine Endlosschleife legen.

Also im Grunde überprüft es immer noch den aktuellen Thread von Zeit zu Zeit.

Es scheint ein Fehler zu sein:

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

+29

Es ist einfach, diese Nachrichten auszuschalten (ich benutze VS 2013). Klicken Sie einfach mit der rechten Maustaste in das Ausgabefenster und deaktivieren Sie das Kästchen "Thread-Exit-Nachrichten". Für mich musste ich auch die "Module Load Messages" deaktivieren, um die Ausgabe zu leeren. –