Most interaction with the System.Threading namespace occurs via the Thread type. This type encapsulates most of the logic needed to control the way threads behave.

The most commonly used static methods, usually referred to as thread relative statics, are methods and properties that refer to the currently executing thread. Sleep( ) causes the calling thread to sleep for a specified amount of time. If for some reason the thread gets woken up, a ThreadInterruptedException is thrown. Because this method can only be called by the current thread and not on a reference to a thread that may also be executing, the thread sleeps immediately and does not need to wait for a safe point for garbage collection as the Suspend( ) method does (see later in this entry).

GetData( ) retrieves data from a specified slot in thread local storage. To use this method, slots need to be initialized already (see later in this section). SetData( ) stores data in thread local storage to be retrieved using GetData( ). AllocateDataSlot( ) and AllocateNamedDataSlot( ) allocate a data slot for use with the previous two methods.

The Thread class also provides the static property CurrentThread, which returns a reference to the Thread object for the currently running thread. The current thread can then access any of the following instance methods or properties on itself: Abort( ) causes a thread to abort, throwing a ThreadAbortException and executing any finally blocks. You may catch the ThreadAbortException ...

Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.