C#线程中的Join,Sleep和Abort方法

加入

阻塞调用线程,直到线程终止,同时继续执行标准COM和SendMessage泵送。此方法具有不同的重载形式。

睡觉

使线程暂停一段时间。

中止

Abort方法用于销毁线程。

让我们看一个Join()in线程的例子-

示例

using System;
using System.Diagnostics;
using System.Threading;
namespace Sample {
   class Demo {
      static void Run() {
         for (int i = 0; i < 2; i++)
         Console.Write("示例文本!");
      }
      static void Main(string[] args) {
         Thread t = new Thread(Run);
         t.Start();
         t.Join();
         Console.WriteLine("线程终止!");
         Console.Read();
      }
   }  
}

让我们看一下线程中abort()和的示例sleep()

示例

using System;
using System.Threading;
namespace Demo {
   class ThreadCreationProgram {
      public static void CallToChildThread() {
         try {
            Console.WriteLine("Child thread starts");
            //做一些工作,例如数到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();
         //停止主线程一段时间
         Thread.Sleep(2000);
         //现在中止孩子
         Console.WriteLine("In Main: Aborting the Child thread");
         childThread.Abort();
         Console.ReadKey();
      }
   }
}