• AutoResetEvent 运用


    static AutoResetEvent are = new AutoResetEvent(true);//初始化为开
    
    static void Main(string[] args)
    {
                      //如果这里加上这句 are.Reset(); 则会把初始化的开,改为关
    for (int i = 0; i < 10; i++) { new Thread(() => { are.WaitOne();//发现为开,继续执行并设置为关 Thread.Sleep(1000); Console.WriteLine(DateTime.Now.ToString("mm:ss")); are.Set();//又重新设置为开

    }).Start(); } }
    static AutoResetEvent are = new AutoResetEvent(false);//初始化为关
    
    static void Main(string[] args)
    {
                      are.Set();//这里必须先设置为开,下面are.WaitOne()才能继续执行
                     
                      for (int i = 0; i < 10; i++)
                      {
                            new Thread(() =>
                            {
    
                                  are.WaitOne();//发现为开,继续执行并设置为 ,如果 are 是 ManualResetEvent 的实例,则 不会 自动设置为 
                                  Thread.Sleep(1000);
                                  Console.WriteLine(DateTime.Now.ToString("mm:ss"));
                                  are.Set();//又重新设置为开

    }).Start(); } }
    static AutoResetEvent are = new AutoResetEvent(false);
    static void Main(string[] args)
    {
                      for (int i = 0; i < 10; i++)
                      {
                         
                            new Thread(() =>
                            {
                            
                                  are.WaitOne();
    
                                  Thread.Sleep(1000);
    
                                  Console.WriteLine(DateTime.Now.ToString("mm:ss"));
    
    
                            }).Start();
    
                      }
                      are.Set();// 只能执行一个线程输出,其它阻塞;如果 are 是 ManualResetEvent 的实例,则会全部输出,因为 WaitOne 它只等一个Set信号,它不会自动设置关;
     }
  • 相关阅读:
    JSP第六次作业
    JSP第五次作业
    第二次软件测试作业
    JSP第四次作业(2)
    JSP第四次作业(1)
    JSP第七次作业
    JSP第六次作业
    session对象练习
    JSP第四次作业(2)
    JSP第四次作业(1)
  • 原文地址:https://www.cnblogs.com/yipeng-yu/p/5316197.html
Copyright © 2020-2023  润新知