zoukankan      html  css  js  c++  java
  • [多线程] ManualResetEvent(线程之间通讯 通知或者查看是否完成)

    在别人的基础上修改成ManualResetEvent, 以取代suspend, resume. 

      public class Boy
        {
            private ManualResetEvent ent;
            public Boy(ManualResetEvent e)
            {
                ent = e;
            }
            public void SendFlower()
            {
                Console.WriteLine("正在送花的途中");
                for (int i = 0; i < 10; i++)
                {
                    Thread.Sleep(200);
                    Console.Write("..");
                }
                Console.WriteLine("花已经送到");
                ent.Set();
            }
        }

        class Program
        {
            private static ManualResetEvent ent = new ManualResetEvent(false);
            static void Main(string[] args)
            {
                Boy sender = new Boy(ent);
                for (int i = 0; i < 2; i++)
                {
                    Thread th = new Thread(new ThreadStart(sender.SendFlower));
                    th.Start();
                    //Console.WriteLine("-before wait?-" + ent.WaitOne(0)); //false
                    ent.WaitOne();
                    //Console.WriteLine("-before reset?-" + ent.WaitOne(0)); //true
                    ent.Reset();
                    //Console.WriteLine("-after reset?-" + ent.WaitOne(0)); //false
                    Console.WriteLine("收到了吧,花是我送嘀:)/r/n/r/n");
                }
                Console.ReadLine();
            }
        }

  • 相关阅读:
    windows系统桌面美化
    Jenkins 显示语言-英文切换中文
    Jenkins 任务定时
    Jenkins 结合 ANT 发送测试报告
    ANT 的使用
    虚拟机与主机之间文件传输
    【译】使用WebDriver采样器将JMeter与Selenium集成
    Newman基本使用
    autoIt中文手册
    selenium控制超链接在当前标签页中打开或重新打开一个标签页
  • 原文地址:https://www.cnblogs.com/webglcn/p/2487462.html
Copyright © 2011-2022 走看看