waithander就是用來阻塞當前線程的,然后通過set()方法放開
namespace waithandler
{
class Program
{
//static EventWaitHandle wait = new EventWaitHandle(true, EventResetMode.AutoReset); //自動 中止狀態
static EventWaitHandle waitM = new EventWaitHandle(false, EventResetMode.ManualReset);//手動 非終止狀態
static void Main(string[] args)
{
Console.WriteLine("1當前時間" + DateTime.Now);
Thread thread = new Thread(S);
thread.Start();
Thread.Sleep(3000);
//wait.Set();//將狀態設置為終止狀態。
waitM.Set(); //將狀態設置為終止狀態。
Console.Read();
}
public static void S()
{
waitM.WaitOne(3000); //非終止狀態,無限制阻塞線程,不自動改變事件的終止狀態
//wait.WaitOne(); //自動返回為終止狀態,不阻塞線程,為同一時間
Console.WriteLine("2當前時間" + DateTime.Now);
waitM.WaitOne(3000); //前面的set()將事件手動終止狀態,不進行阻塞
// wait.WaitOne(3000); //此時為非終止狀態,停頓三秒
Console.WriteLine("3當前時間" + DateTime.Now);
}
}
}
未完待續。。。。。