首页 > 技术文章 > C#中对于ManualResetEvent 类的用法

LY-HeroesRebor 2020-07-02 10:07 原文

ManualResetEvent主要用于多线程的管理。

1、实例化一个对象

         /// <summary>
        /// 设为True,线程不阻塞
        /// 设为false,调用set()之前,阻塞
        /// </summary>
        public static ManualResetEvent mre = new ManualResetEvent(true);

2、方法作用

  mre.Reset();

  将事件状态设为无信号状态,导致线程阻塞

  mre.Set();

  将事件状态设为有信号状态,允许等待线程继续

 

       上面两个方法理解为线程阻塞的开关信号。阻塞信号开,则所有被阻塞的线程等待;阻塞信号关,则所有被阻塞的线程开始执行

 

  mre.WaitOne();

  阻塞线程,直到调用Set方法才能继续执行;一般用在各个子线程中

推荐阅读