Question

J'ai un exécutable en mode mixte et j'ai remarqué que le constructeur de mes variables globales natives est appelée dans le thread principal, mais le destructor est appelé dans un autre thread.
Le nom du fil est ':: Discussion intermediateThreadProc'.

Quelle est la raison? Et quel est ce fil ':: Discussion intermediateThreadProc'?

Merci.

Était-ce utile?

La solution

Discussion :: intermediateThreadProc () est une petite fonction d'aide dans le CLR qui est utilisé comme la fonction de démarrage de fil pour tout fil commencé par le CLR. Trouvez de retour dans la source de SSCLI20, src \ vm \ threads.cpp

En voyant cette course sur un autre thread est à prévoir. le code de nettoyage est exécutée lorsque le appdomain se déchargé. La logique CLR car il est puissant compliqué, mais il semble que cela va fonctionner lorsque le appdomain exécute le thread finaliseur pour la dernière fois pour nettoyer le tas. Vous pouvez supposer que tous les objets gérés sont morts et il n'y a pas d'autres threads en cours d'exécution. Attention que votre code est soumis aux deux deuxième temps d'arrêt de thread finaliseur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top