Question: I have the following code:

```
new Thread(new ThreadStart(delegate()
{
    while (true)
    {
        //something
    }
})).Start();

```

Can garbage collector finalize this instance of `Thread` while it is in the `Running` state?

Answer: 
No; running threads count as roots. A running thread will not be collected, nor will anything referenced by the active part(s) of the *stack* for that thread.
All running timer, threads, thread pool and tasks are marked as root. So they will be garbage collected only when they're done (finished executing) or will be deleted when the application closes.