- class threadAbort
- {
- static void Main(string[] args)
- {
- WriteMessage("主线程开始工作", ConsoleColor.White, ConsoleColor.White);
- Thread th = new Thread(new ThreadStart(TestTry));
- th.Start();
- Thread.Sleep(500);//500毫秒后结束线程
- th.Abort();
- th.Join();
- WriteMessage("主线程结束工作" + th.ThreadState.ToString(), ConsoleColor.White, ConsoleColor.White);
-
- Console.ReadKey();
- }
-
- private static void TestTry()
- {
- try
- {
- for (int i = 0; i < 10; i++)
- {
- WriteMessage("线程正在工作中"+i.ToString(), ConsoleColor.Green, ConsoleColor.White);
- Thread.Sleep(100);
- }
- }
- catch (ThreadAbortException ex)
- {
- WriteMessage("线程错误信息:" + ex.Message, ConsoleColor.Red, ConsoleColor.White);
- }
- finally
- {
- WriteMessage("线程退出。。", ConsoleColor.Blue, ConsoleColor.White);
- }
-
- //如果线程未结束,直接Abort线程,下面语句将不会被执行。
- WriteMessage("线程结束工作.", ConsoleColor.Yellow, ConsoleColor.White);
- }
-
- public static void WriteMessage(string message, ConsoleColor writeColor, ConsoleColor backColor)
- {
- Console.ForegroundColor = writeColor;
- Console.WriteLine(message);
- //Console.BackgroundColor = backColor;
- }
- }