1. 程式人生 > >C#執行緒同步CountdownEvent

C#執行緒同步CountdownEvent

CountdownEvent用於在完成指定的幾個操作後悔發出訊號。
下面通過程式碼來說下CountdownEvent。

static CountdownEvent _countdown = new CountdownEvent(2);
        static void PerformOperation(string message,int seconds)
        {
            Thread.Sleep(TimeSpan.FromSeconds(seconds));
            Console.WriteLine(message);
            _countdown.
Signal(); } static void Main(string[] args) { Console.WriteLine("Starting two operations"); var t1 = new Thread(() => PerformOperation("Operation 1 is completed", 4)); var t2 = new Thread(() => PerformOperation("Operation 2 is completed"
, 8)); t1.Start(); t2.Start(); _countdown.Wait(); Console.WriteLine("get _countdown"); _countdown.Dispose(); }

在建立CountdownEvent時可以設定需要完成幾個操作時傳送訊號,這裡我設定為兩個,其含義是想要獲得訊號,在獲得訊號之前必須執行兩次_countdown.Signal();否則執行緒將一直處於阻塞狀態,在這個程式中便是主執行緒想獲得_countdown,必須等待t1、t2兩個執行緒執行_countdown.Signal();

後才能獲得該訊號。