ICorProfilerCallback2 — Interfejs
Udostępnia metody, które są używane przez środowisko uruchomieniowe języka wspólnego (CLR) do powiadamiania profilera kodu o zdarzeniach, do których profiler zasubskrybował. Interfejs ICorProfilerCallback2
jest rozszerzeniem interfejsu ICorProfilerCallback . Oznacza to, że zapewnia nowe wywołania zwrotne wprowadzone w .NET Framework w wersji 2.0.
Uwaga
Każda implementacja metody musi zwrócić wartość HRESULT o wartości S_OK powodzenia lub E_FAIL w przypadku niepowodzenia. Obecnie clR ignoruje HRESULT zwracane przez każde wywołanie zwrotne z wyjątkiem ICorProfilerCallback::ObjectReferences.
Metody
Metoda | Opis |
---|---|
FinalizeableObjectQueued, metoda | Powiadamia profilera kodu, że obiekt z finalizatorem został w kolejce do wątku finalizatora w celu wykonania jego Finalize metody. |
GarbageCollectionFinished, metoda | Powiadamia profilera, że odzyskiwanie pamięci zostało ukończone, a wszystkie wywołania zwrotne odzyskiwania pamięci zostały dla niego wystawione. |
GarbageCollectionStarted, metoda | Powiadamia profilera kodu o rozpoczęciu odzyskiwania pamięci. |
HandleCreated, metoda | Powiadamia profilera kodu o utworzeniu uchwytu odzyskiwania pamięci. |
HandleDestroyed, metoda | Powiadamia profilera kodu, że uchwyt odzyskiwania pamięci został zniszczony. |
RootReferences2, metoda | Powiadamia profilera o odwołaniach do katalogu głównego po wystąpieniu odzyskiwania pamięci. Ta metoda jest rozszerzeniem metody ICorProfilerCallback::RootReferences . |
SurvivingReferences, metoda | Powiadamia profilera o odwołaniach do obiektów, które przeżyły odzyskiwanie pamięci. |
ThreadNameChanged, metoda | Powiadamia profilera kodu o zmianie nazwy wątku. |
Uwagi
ClR wywołuje metodę w interfejsie ICorProfilerCallback
(lub ICorProfilerCallback2
), aby powiadomić profilera o wystąpieniu zdarzenia, do którego profiler zasubskrybował. Jest to podstawowy interfejs wywołania zwrotnego, za pomocą którego clR komunikuje się z profilerem kodu.
Profiler kodu musi implementować metody interfejsu ICorProfilerCallback
. W przypadku .NET Framework 2.0 i nowszych wersji profiler musi również zaimplementować ICorProfilerCallback2
metody. Każda implementacja metody musi zwrócić wartość HRESULT o wartości S_OK powodzenia lub E_FAIL w przypadku niepowodzenia. Obecnie clR ignoruje HRESULT zwracane przez każde wywołanie zwrotne z wyjątkiem ICorProfilerCallback::ObjectReferences.
Profiler kodu musi zarejestrować się w rejestrze systemu Microsoft Windows, jego obiekt COM, który implementuje ICorProfilerCallback
interfejsy i ICorProfilerCallback2
. Profiler kodu subskrybuje zdarzenia, dla których chce otrzymywać powiadomienia, wywołując element ICorProfilerInfo::SetEventMask. Zwykle odbywa się to w implementacji profilera elementu ICorProfilerCallback::Initialize. Profiler jest następnie w stanie odbierać powiadomienia ze środowiska uruchomieniowego, gdy zdarzenie ma się zdarzyć lub właśnie wystąpiło w procesie wykonywania środowiska uruchomieniowego.
Uwaga
Profiler rejestruje pojedynczy obiekt COM. Jeśli profiler jest przeznaczony dla .NET Framework w wersji 1.0 lub 1.1, ten obiekt COM musi implementować tylko metody ICorProfilerCallback
. Jeśli jest przeznaczona dla .NET Framework w wersji 2.0 lub nowszejICorProfilerCallback2
, obiekt COM musi również zaimplementować metody .
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: CorProf.idl, CorProf.h
Biblioteki: CorGuids.lib
wersje .NET Framework: dostępne od wersji 2.0