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();
            }
        }

  • 相关阅读:
    rabbitmq技术的一些感悟(一)
    用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例
    huffman编码——原理与实现
    MS-SQLSERVER中的MSDTC不可用解决方法
    基础总结篇之中的一个:Activity生命周期
    STL vector使用方法介绍
    Cocos2d-x Render-NewCulling
    C++ Primer笔记9_构造函数_拷贝构造(深拷贝与浅拷贝)
    shell编程基础
    软考复习之路—组成原理
  • 原文地址:https://www.cnblogs.com/webglcn/p/2487462.html
Copyright © 2011-2022 走看看