ICorProfilerCallback::Shutdown, méthode
Notifie le profileur que l’application est en train de s’arrêter.
Syntaxe
HRESULT Shutdown();
Notes
Le code du profileur ne peut pas appeler en toute sécurité les méthodes de l’interface ICorProfilerInfo après l’appel de la méthode Shutdown
. Tous les appels aux méthodes ICorProfilerInfo
entraînent un comportement non défini après le retour de la méthode Shutdown
. Certains événements immuables peuvent toujours se produire après l’arrêt ; le profileur doit veiller à être immédiatement retourné quand cela se produit.
La méthode Shutdown
est appelée uniquement si l’application managée en cours de profilage a démarré en tant que code managé (autrement dit, le frame initial dans la pile de processus est managée). Si l’application a démarré en tant que code non managé, mais qu’elle est passée par la suite à du code managé, ce qui crée donc une instance du Common Language Runtime (CLR), alors la méthode Shutdown
ne sera pas appelée. Dans ce cas, le profileur doit inclure dans sa bibliothèque une routine DllMain
qui utilise la valeur DLL_PROCESS_DETACH pour libérer toutes les ressources et effectuer un traitement de nettoyage de ses données, comme le vidage des traces sur le disque, etc.
En règle générale, le profileur doit faire face à des arrêts inattendus. Par exemple, un processus peut être interrompu par la méthode TerminateProcess
de Win32 (déclarée dans Winbase.h). Dans d’autres cas, le CLR interrompt certains threads managés (threads en arrière-plan) sans fournir de messages de destruction ordonnés.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : CorProf.idl, CorProf.h
Bibliothèque : CorGuids.lib
Versions de .NET Framework : Disponible depuis la version 2.0