Thread C#

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// An alternate way to start a thread. 
 
using System; 
using System.Threading; 
 
class MyThread { 
  public int count; 
  public Thread thrd; 
 
  public MyThread(string name) { 
    count = 0; 
    thrd = new Thread(new ThreadStart(this.run)); 
    thrd.Name = name; // set the name of the thread 
    thrd.Start(); // start the thread 
  } 
 
  // Entry point of thread. 
  void run() { 
    Console.WriteLine(thrd.Name + " starting."); 
 
    do { 
      Thread.Sleep(500); 
      Console.WriteLine("In " + thrd.Name + 
                        ", count is " + count); 
      count++; 
    } while(count < 10); 
 
    Console.WriteLine(thrd.Name + " terminating."); 
  } 

 
public class MultiThreadImproved { 
  public static void Main() { 
    Console.WriteLine("Main thread starting."); 
 
    // First, construct a MyThread object. 
    MyThread mt = new MyThread("Child #1"); 
 
    do { 
      Console.Write("."); 
      Thread.Sleep(100); 
    } while (mt.count != 10); 
 
    Console.WriteLine("Main thread ending."); 
  } 
}