Mega Code Archive

 
Categories / C# / Thread
 

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.");     }   }