AutoResetEvent简单理解

作为一个.NET菜鸟,也开通博客啦,有时会也会一时兴起记录下所学的生疏知识点,在记录的同时也望各位前辈指正批评!

今天看了一个新项目代码,这个项目是供应商开发的一套半导体工厂EAP系统,刚拿到代码就看了看,发现AutoResetEvent这个东西之前还真没见过,到底是个啥呢?查了几篇资料之后,

我粗略理解为线程的信号灯,用于通知线程的状态,于是写了个小Demo,主要用到了Set()和WaitOne()方法。

public class Program
    {
        private static AutoResetEvent autoResetEvent = new AutoResetEvent(false);

        static void Main(string[] args)
        {
            var mc = new MyClass();
            Console.WriteLine("等待开始……");
            Task.Run(()=> {
                for (int i = 0; i < 10; i++)
                {
                    Console.WriteLine($"倒计时:{i}秒");
                    Thread.Sleep(2000);
                }
                mc.autoResetEvent.Set();
            });
            if (mc.autoResetEvent.WaitOne())
            {
                Console.WriteLine("等待结束!");
            }
        }
    }

    public class MyClass
    {
        public  AutoResetEvent autoResetEvent;

        public  MyClass()
        {
            autoResetEvent = new AutoResetEvent(false);
        }
    
    }
}

执行结果如下

AutoResetEvent简单理解

 

上一篇:MySQL命令行操作大全


下一篇:《C++ Templates》模板术语