Mega Code Archive

 
Categories / C# Tutorial / Thread
 

Use ResetAbort()

using System;  using System.Threading;    class MyThread {     public Thread thrd;          public MyThread(string name) {       thrd = new Thread(this.run);      thrd.Name = name;      thrd.Start();     }        void run() {       Console.WriteLine(thrd.Name + " starting.");        for(int i = 1; i <= 100; i++) {         try {          Console.Write(i + " ");           Thread.Sleep(50);        } catch(ThreadAbortException exc) {          if((int)exc.ExceptionState == 0) {            Console.WriteLine("Abort Cancelled! Code is " + exc.ExceptionState);            Thread.ResetAbort();          } else             Console.WriteLine("Thread aborting, code is " + exc.ExceptionState);        }      }      Console.WriteLine(thrd.Name + " exiting normally.");     }  }     class MainClass {     public static void Main() {       MyThread mt1 = new MyThread("My Thread");         Thread.Sleep(1000);        Console.WriteLine("Stopping thread.");       mt1.thrd.Abort(100);        mt1.thrd.Join();        Console.WriteLine("Main thread terminating.");     }   }