Udostępnij za pośrednictwem


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

Zobacz też