C# EventWaitHandle用法


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);

        }
    }
}
未完待續。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM