using System; using System.Threading;classTest {publicstaticvoidMain(){Thread newThread =newThread(newThreadStart(TestMethod));newThread.Start();Thread.Sleep(1000);// Abort newThread.Console.WriteLine("Main aborting new thread.");newThread.Abort("Information from Main.");// Wait for the thread to terminate.newThread.Join();Console.WriteLine("New thread terminated - Main exiting.");}staticvoidTestMethod(){try{while(true){Console.WriteLine("New thread running.");Thread.Sleep(1000);}}catch(ThreadAbortException abortException){Console.WriteLine((string)abortException.ExceptionState);}finally{Console.WriteLine("Do somthing else in funally{}.");}Console.WriteLine("Do somthing else here.");} } /*输出结果: New thread running. Main aborting new thread. Information from Main. Do somthing else in funally{}. New thread terminated - Main exiting. */
using System; using System.Threading;classTest {publicstaticvoidMain(){Thread newThread =newThread(newThreadStart(TestMethod));newThread.Start();Thread.Sleep(1000);// Abort newThread.Console.WriteLine("Main aborting new thread.");newThread.Abort("Information from Main.");// Wait for the thread to terminate.newThread.Join();Console.WriteLine("New thread terminated - Main exiting.");}staticvoidTestMethod(){try{while(true){Console.WriteLine("New thread running.");Thread.Sleep(1000);}}catch(ThreadAbortException abortException){Console.WriteLine((string)abortException.ExceptionState);Thread.ResetAbort();}finally{Console.WriteLine("Do somthing else in funally{}.");}Console.WriteLine("Do somthing else here.");} } /*输出结果: New thread running. Main aborting new thread. Information from Main. Do somthing else in funally{}. Do somthing else here. New thread terminated - Main exiting. */