How to destroy threads in C#?

CsharpProgrammingServer Side Programming

The Abort() method is used for destroying threads.

The runtime aborts the thread by throwing a ThreadAbortException. This exception cannot be caught, the control is sent to the finally block, if any.

The following is an example showing how to destroy threads −


 Live Demo

using System;
using System.Threading;

namespace MultithreadingApplication {
   class ThreadCreationProgram {
      public static void CallToChildThread() {
         try {
            Console.WriteLine("Child thread starts");

            // do some work, like counting to 10
            for (int counter = 0; counter <= 10; counter++) {

            Console.WriteLine("Child Thread Completed");
         } catch (ThreadAbortException e) {
            Console.WriteLine("Thread Abort Exception");
         } finally {
            Console.WriteLine("Couldn't catch the Thread Exception");

      static void Main(string[] args) {
         ThreadStart childref = new ThreadStart(CallToChildThread);
         Console.WriteLine("In Main: Creating the Child thread");

         Thread childThread = new Thread(childref);
         //stop the main thread for some time
         //now abort the child
         Console.WriteLine("In Main: Aborting the Child thread");


In Main: Creating the Child thread
Child thread starts
In Main: Aborting the Child thread
Thread Abort Exception
Couldn't catch the Thread Exception
Updated on 20-Jun-2020 15:12:48