作为一个.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); } } }
执行结果如下