Je reçois une multitude de ces messages dans mon application Winforms même si je n'ai jamais explicitement créé de threads. Pourquoi cela arrive-t-il? J'ai cherché une explication mais il est difficile de faire une enquête comme celle-ci.
J'utilise Visual Studios 2013 et voici la sortie de débogage qui me préoccupe:
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).
De la documentation MSDN:
Remarques
Cette fonction retourne immédiatement. Si le thread spécifié n'est pas terminé et que la fonction réussit, l'état renvoyé est STILL_ACTIVE. Si le thread est terminé et que la fonction réussit, le statut renvoyé est l'une des valeurs suivantes: La valeur de sortie spécifiée dans la fonction ExitThread ou TerminateThread. La valeur de retour de la fonction thread. La valeur de sortie du processus du thread. Important La fonction GetExitCodeThread renvoie un code d'erreur valide défini par l'application uniquement après la fin du thread. Par conséquent, une application ne doit pas utiliser STILL_ACTIVE (259) comme code d'erreur. Si un thread retourne STILL_ACTIVE (259) en tant que code d'erreur, les applications qui testent cette valeur peuvent l'interpréter comme signifiant que le thread est toujours en cours d'exécution et continuer à tester l'achèvement du thread une fois celui-ci terminé, ce qui risque de application dans une boucle infinie.
Donc, fondamentalement, il faut toujours vérifier le fil actuel de temps en temps.
Cela semble être un bug: