How to identify the GC Finalizer thread?

I have a .NET (C#) multi-threaded application and I want to know if a certain method runs inside the Finalizer thread.

I've tried using Thread.CurrentThread.Name but it doesn't work (returns null).

Anyone knows how can I query the current thread to discover if it's the Finalizer thread?


The best way to identify a thread is through its managed id:


Since a finalizer always runs in the GC's thread you can create a finalizer that will save the thread id (or the thread object) in a static valiable.


public class ThreadTest {
    public static Thread GCThread;

    ~ThreadTest() {
        ThreadTest.GCThread = Thread.CurrentThread;

in your code just create an instance of this class and do a garbage collection:

public static void Main() {
    ThreadTest test = new ThreadTest();
    test = null;


Need Your Help

GCC weird linker errors.. works on Visual Studio 2010

c++ visual-studio-2010 gcc linker

I'm getting this weird linker error using gcc, thought the code works fine when I use Visual Studio..

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.