Loader Callbacks in the Profiling API
Loader callbacks are methods that are issued for loading and unloading application domains, assemblies, modules, and classes. These methods are arranged in LoadStarted/LoadFinished and UnloadStarted/UnloadFinished pairs with self-explanatory meanings.
You might expect the common language runtime (CLR) to notify the profiler of an assembly load, followed by one or more module loads for that assembly. However, what actually occurs depends on any number of factors in the implementation of the loader.
The profiler may depend only on the following:
A Started callback will be delivered before the Finished callback for the same ID.
Started and Finished callbacks will be delivered on the same thread.
Although the loader callbacks are arranged in Started/Finished pairs, in the .NET Framework version 2.0 they cannot be used to accurately determine the timing of operations in the loader.