Les threads .NET ne possèdent pas de codes de sortie. Ceux-ci sont utilisés par les threads natifs sur Windows, mais les threads natifs sont uniquement utilisés par des threads gérés et n'ont pas de correspondance 1: 1 avec un thread géré donné. Le même thread géré peut s'exécuter sur plusieurs threads natifs et vice versa (bien que ce ne soit évidemment pas le cas en même temps). Pour citer MSDN:
Un ThreadId du système d'exploitation n'a pas de relation fixe avec un thread géré, car un hôte non géré peut contrôler la relation entre les threads gérés et non gérés. Plus précisément, un hôte sophistiqué peut utiliser l'API Fibre pour planifier de nombreux threads gérés sur le même thread de système d'exploitation ou pour déplacer un thread géré entre différents threads du système d'exploitation.
Cela vaut évidemment pour toutes les ressources liées au fil natif - mais le moteur d'exécution ne gère les gérées ressources d'un fil, bien sûr; et pour le code non managé appelant en code managé, le thread sera maintenu le même - sinon interop serait tout à fait impossible.
Si vous souhaitez ajouter des informations supplémentaires aux tâches, essayez d'utiliser un niveau d'abstraction plus élevé, par exemple. Task
. Besoin de sortir le statut d'une tâche à la fin? Ajouter une continuation Besoin de vérifier l'état d'une tâche pour laquelle vous avez une référence? Attendez-le ou interrogez l'objet.
Vous ne devriez pas utiliser/compter sur eux dans .net, raisons/explication [ici] (https://stackoverflow.com/questions/5628908/whats-the-equivalent-of-exitthreadexitcode-and-getexitcodethread-in -c-sharp). –
Il existe un appel d'API Windows ['ExitThread (DWORD)'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms682659 (v = vs.85) .aspx) qui se termine par thread en utilisant le code de sortie fourni. Mais je suis sûr que c'est une très mauvaise idée d'appeler cela à partir de threads gérés, pour les raisons liées par Manfred –