Condividi tramite


Thread di notifica dell'API di analisi

Aggiornamento: novembre 2007

Nella maggior parte dei casi, il thread che genera un evento esegue anche notifiche. Tali notifiche (ad esempio, FunctionEnter e FunctionLeave) non devono necessariamente fornire il ThreadIDesplicito. Inoltre, il profiler potrebbe utilizzare la memoria locale del thread per archiviare e aggiornare i blocchi delle analisi anziché indicizzarli in un archivio globale, basato sul ThreadID del thread interessato.

Questi callback non sono serializzati. Gli utenti dovranno proteggere il codice creando strutture dei dati thread-safe e bloccando il codice del profiler dove necessario, per impedire l'accesso parallelo da più thread. Pertanto, in certi casi è possibile ricevere una sequenza insolita di callback. Ad esempio, si supponga che un'applicazione gestita generi due thread che eseguono codice identico. In questo caso, è possibile ricevere un evento ICorProfilerCallback::JITCompilationStarted per una funzione da un thread e un callback FunctionEnter dall'altro thread, prima di ricevere il callback ICorProfilerCallback::JITCompilationFinished. In questo caso, l'utente riceverà un callback FunctionEnter per una funzione che potrebbe non essere ancora stata completamente compilata tramite JIT.

Vedere anche

Altre risorse

Funzionalità comuni nell'API di analisi

Cenni preliminari sull'analisi