溫馨提示×

C#中ManualResetEvent的使用方法是什么

c#
小億
144
2024-03-08 15:19:23
欄目: 編程語言

在C#中,ManualResetEvent 是一個(gè)同步基元,允許一個(gè)線程通知另一個(gè)線程,某個(gè)事件已經(jīng)發(fā)生。主要有以下幾個(gè)方法:

  1. ManualResetEvent 構(gòu)造函數(shù):初始化一個(gè) ManualResetEvent 實(shí)例,可以指定初始狀態(tài)。
ManualResetEvent resetEvent = new ManualResetEvent(false); // 初始化為未終止?fàn)顟B(tài)
  1. Set() 方法:將 ManualResetEvent 設(shè)置為終止?fàn)顟B(tài),允許等待線程繼續(xù)執(zhí)行。
resetEvent.Set();
  1. Reset() 方法:將 ManualResetEvent 設(shè)置為非終止?fàn)顟B(tài),阻止等待線程繼續(xù)執(zhí)行。
resetEvent.Reset();
  1. WaitOne() 方法:阻止當(dāng)前線程,直到收到信號為止。
resetEvent.WaitOne();
  1. WaitOne(timeout) 方法:阻止當(dāng)前線程,直到收到信號或超時(shí)為止。
resetEvent.WaitOne(1000); // 等待1秒鐘

使用 ManualResetEvent 可以很方便地實(shí)現(xiàn)線程同步和通信,例如在多線程環(huán)境中協(xié)調(diào)線程的執(zhí)行順序。

0