ICorProfilerInfo4::InitializeCurrentThread Method
Initializes the current thread in advance of subsequent profiler API calls on the same thread, so that deadlock can be avoided.
Syntax
HRESULT InitializeCurrentThread ();
Remarks
We recommend that you call InitializeCurrentThread
on any thread that will call a profiler API while there are suspended threads. This method is typically used by sampling profilers that create their own thread to call the ICorProfilerInfo2::DoStackSnapshot method to perform stack walks while the target thread is suspended. By calling InitializeCurrentThread
once when the profiler first creates the sampling thread, profilers can ensure that lazy per-thread initialization that the CLR would otherwise perform during the first call to DoStackSnapshot
can now occur safely when no other threads are suspended.
Note
InitializeCurrentThread
does the initialization in advance to finish tasks that take locks, and may deadlock. Call InitializeCurrentThread
only when there are no suspended threads.
Requirements
Platforms: See System Requirements.
Header: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework Versions: Available since 4.5