Suspending, resuming, and stopping a thread





/*

C#: The Complete Reference 

by Herbert Schildt 



Publisher: Osborne/McGraw-Hill (March 8, 2002)

ISBN: 0072134852

*/





// Suspending, resuming, and stopping a thread. 

 

using System; 

using System.Threading; 

 

class MyThread {  

  public Thread thrd;  

    

  public MyThread(string name) {  

    thrd = new Thread(new ThreadStart(this.run))

    thrd.Name = name; 

    thrd.Start();  

  }  

  

  // This is the entry point for thread.  

  void run() {  

    Console.WriteLine(thrd.Name + " starting.")

 

    for(int i = 1; i <= 1000; i++) {  

      Console.Write(i + " ");  

      if((i%10)==0) { 

        Console.WriteLine()

        Thread.Sleep(250)

      

    

    Console.WriteLine(thrd.Name + " exiting.");  

  }  



  

public class SuspendResumeStop {  

  public static void Main() {  

    MyThread mt1 = new MyThread("My Thread");  

 

    Thread.Sleep(1000)// let child thread start executing 

  

    mt1.thrd.Suspend();  

    Console.WriteLine("Suspending thread.");  

    Thread.Sleep(1000)

 

    mt1.thrd.Resume();  

    Console.WriteLine("Resuming thread.");  

    Thread.Sleep(1000)

 

    mt1.thrd.Suspend();  

    Console.WriteLine("Suspending thread.");  

    Thread.Sleep(1000)

 

    mt1.thrd.Resume();  

    Console.WriteLine("Resuming thread.");  

    Thread.Sleep(1000)

 

    Console.WriteLine("Stopping thread.");  

    mt1.thrd.Abort()

 

    mt1.thrd.Join()// wait for thread to terminate 

 

    Console.WriteLine("Main thread terminating.");  

  }  

}





           

       

Tags: , , , , , , ,

Leave a Reply