Thread

A thread is a context in which code is run. Multiple threads can be launched (called multi-threading) allowing multiple sets of code to run at the 'same time'.

Example:
 * Thread Class:
 * Build a method that conforms to the ThreadStart delegate (void, no parameters). Instantiate a ThreadStart delegate pointing to your method in the Main.  Instantiate a thread object in the Main.  Start the thread.
 * Does have static members such as .CurrentThread


 * Thread Pool
 * Access a thread from the threadpool. (can’t control priority. Not good for long-lived threads)
 * Thread Safety
 * Ensuring that any data that multiple threads have access to is maintained in a valid state given that threads can come to the end of their time slice at any line of code and that locks can be placed such that deadlocks and racing can occur.


 * See Also
 * [Multi-Threading : http://www.yoda.arachsys.com/csharp/threads/]
 * [Thread Safety : http://www.thinkingparallel.com/2006/10/15/a-short-guide-to-mastering-thread-safety/]