Megosztás a következőn keresztül:


ICorProfilerCallback4::ReJITCompilationStarted metódus

Értesíti a profilkészítőt, hogy az igény szerinti fordító (JIT) elkezdte újrafordíteni a függvényt.

Szintaxis

HRESULT ReJITCompilationStarted(
    [in] FunctionID functionId,  
    [in] ReJITID    rejitId,  
    [in] BOOL       fIsSafeToBlock);  

Paraméterek

functionId
[in] Annak a függvénynek az azonosítója, amelyet a JIT-fordító elkezdett újrafordíteni.

rejitId
[in] A függvény új verziójának újrafordítási azonosítója.

fIsSafeToBlock
[in] true annak jelzésére, hogy a blokkolás miatt a futtatókörnyezet megvárhatja, amíg a híváslánc visszatér ebből a visszahívásból; false annak jelzésére, hogy a blokkolás nem befolyásolja a futtatókörnyezet működését. A értéke nem károsítja true a futtatókörnyezetet, de hatással lehet a profilkészítési eredményekre.

Megjegyzések

Több pár ReJITCompilationStarted és ReJITCompilationFinished metódushívás is fogadható az egyes függvényekhez, mivel a futtatókörnyezet kezeli az osztálykonstruktorokat. A futtatókörnyezet például újrafordítást kezd az A metóduson, de a B osztályhoz tartozó osztálykonstruktort futtatni kell. Ezért a futtatókörnyezet újrafordítást végez a B osztály konstruktorán, és futtatja azt. Amíg a konstruktor fut, meghívja az A metódust, ami miatt az A metódus újrafordul. Ebben a forgatókönyvben az A metódus első újrafordítása leáll. Az A metódus újrafordítására tett mindkét kísérletet azonban JIT újrafordítási eseményekkel jelenti a rendszer.

A profilkészítőknek támogatniuk kell a JIT újrafordítási visszahívásainak sorrendjét olyan esetekben, amikor két szál egyidejűleg végez visszahívást. Például: A híváslánc ReJITCompilationStarted; az A híváslánc előtt azonban a ReJITCompilationFinished, a B szál meghívja az ICorProfilerCallback::ExceptionSearchFunctionEnter függvényazonosítót az ReJITCompilationStarted A szál visszahívásából. Úgy tűnhet, hogy a függvényazonosító még nem lehet érvényes, mert a reJITCompilationFinished hívása még nem érkezett meg a profilozótól. Ebben az esetben azonban a függvényazonosító érvényes.

Követelmények

Platformok: Lásd: Rendszerkövetelmények.

Fejléc: CorProf.idl, CorProf.h

Könyvtár: CorGuids.lib

.NET-keretrendszer verziók: 4.5 óta elérhető

Lásd még