In C#, each thread has a life cycle. The life cycle of a thread is started when instance of System.Threading.Thread class is created. When the task execution of the thread is completed, its life cycle is ended.
There are following states in the life cycle of a Thread in C#.
When the instance of Thread class is created, it is in unstarted state by default.
When start() method on the thread is called, it is in runnable or ready to run state.
Only one thread within a process can be executed at a time. At the time of execution, thread is in running state.
The thread is in not runnable state, if sleep() or wait() method is called on the thread, or input/output operation is blocked.
After completing the task, thread enters into dead or terminated state.