1. We have interactive program that never "Go Dead" on the user. We might have one thread controlling the and responding to a GUI, while another thread carries out the tasks and computations requested, white a third thread does file I/O, all for the same program. This means that when one part of the program is blocked waiting on some other resource, the other threads can still run and are not blocked.
2. Some programs are easier to write if we spilt them into threads. The classic example is the client-server. When a request comes in from a client, it is very convenient if the server can spawn a new thread to process that one request. The alternate to have one server program try to keep track algorithmically of the state of each client request.
3. Some programs are amenable to parallel processing. Writing them as threads allow the code to express this. Example includes some sorting and merging algorithms, some matrix operations, and many recursive algorithms.
Coming soon:-
Part 2 -- Utilization of System.Threading NameSpace, Life Cycle of Methods (Killing a Thread, Pausing a Thread, Suspending a Thread, Resume a suspended Thread)
Part 3 -- Sample of MulthiThreaded Application using C#.Net.
Part 4 -- Some Important Properties and Methods of Threads.