See Also: Thread Members
A process can create and execute one or more threads to execute a portion of the program code associated with the process. A System.Threading.ThreadStart delegate is used to specify the program code executed by a thread.
Some operating systems might not utilize the concepts of threads or preemptive scheduling. Also, the concept of "thread priority" might not exist at all or its meaning might vary, depending on the underlying operating system. Implementers of the System.Threading.Thread type are required to describe their threading policies, including what thread priority means, how many threading priority levels exist, and whether scheduling is preemptive.
For the duration of its existence, a thread is always in one or more of the states defined by System.Threading.ThreadState. A scheduling priority level, as defined by System.Threading.ThreadPriority , can be requested for a thread, but it might not be honored by the operating system.
If an unhandled exception is thrown in the code executed by a thread created by an application, a AppDomain.UnhandledException event is raised (UnhandledExceptionEventArgs.IsTerminating is set to false), and the thread is terminated; the current process is not terminated.