Abort() 메서드는 스레드를 파괴하는 데 사용됩니다.
런타임은 ThreadAbortException을 발생시켜 스레드를 중단합니다. 이 예외는 catch할 수 없으며, 컨트롤이 있으면 finally 블록으로 전송됩니다.
스레드에서 Abort() 메서드 사용 -
childThread.Abort();
예시
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++) { Thread.Sleep(500); Console.WriteLine(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); childThread.Start(); //stop the main thread for some time Thread.Sleep(5000); //now abort the child Console.WriteLine("In Main: Aborting the Child thread"); childThread.Abort(); Console.ReadKey(); } } }
출력
In Main: Creating the Child thread Child thread starts 0 1 2 3 4 5 6 7 8 In Main: Aborting the Child thread Thread Abort Exception Couldn't catch the Thread Exception