2009-05-28 5 views
2

Je travaille sur une application gérée mixte/natif en C++/CLI.arrêt Threads au cours mixte géré/C++ non managé/arrêt de processus CLI

Je sais que le CLR suspendra toutes les discussions gérés sur (un nettoyage) arrêt, mais qu'en est-les non gérés? Est-il possible pour les fils non gérés à toujours en cours d'exécution, alors que le temps d'exécution CLR est en cours d'arrêt/libération de la mémoire/en cours d'exécution finalizers?

Répondre

1

Notez que le CLR suspendra uniquement les threads gérés avec la propriété IsBackGround définie sur true. Tous les threads de premier plan qui sont en cours d'exécution laisseront l'application en suspens en attendant que tous les threads de premier plan se terminent.

En ce qui concerne les sujets non gérés sont concernés, le CLR n'a aucun moyen de savoir à leur sujet, donc oui, ils continueront à courir que si vous écrivez du code pour y mettre fin.

Puis-je demander pourquoi votre application ne peut pas fermer les fils grâce au point où il décide de mettre fin au lieu de laisser à l'environnement pour faire votre nettoyage?

+1

Malheureusement, je peu de contrôle sur le code de l'héritage que nous utilisons arrêt si gracieux sera difficile. –

Questions connexes