zoukankan      html  css  js  c++  java
  • ManualResetEvent 线程通信

    using System;
    using System.Threading;
    
    namespace ConsoleApp1
    {
        class MyThread
        {
            Thread t = null;
            ManualResetEvent manualEvent = new ManualResetEvent(true);//为true,一开始就可以执行
            private void Run()
            {
                while (true)
                {
                    this.manualEvent.WaitOne();
                    Console.WriteLine("线程id:{0}", Thread.CurrentThread.ManagedThreadId);
                    Thread.Sleep(2000);
                }
            }
    
            public void Start()
            {
                this.manualEvent.Set();
            }
    
            public void Stop()
            {
                this.manualEvent.Reset();
            }
    
            public MyThread()
            {
                t = new Thread(this.Run);
                t.Start();
            }
    
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                MyThread myt = new MyThread();
                while (true)
                {
                    Console.WriteLine("输入 stop 后台线程挂起 start 开始执行!");
                    string str = Console.ReadLine();
                    if (str.ToLower().Trim() == "stop")
                    {
                        Console.WriteLine("线程停止运行...
    ");
                        myt.Stop();
                    }
                    if (str.ToLower().Trim() == "start")
                    {
                        Console.WriteLine("线程开启运行...
    ");
                        myt.Start();
                    }
                }
            }
    
        }
    }
  • 相关阅读:
    Hopcroft-Carp 算法模板 自用
    (转)二分图匹配匈牙利算法与KM算法
    LightOJ
    最短路类型 (至今做过的)
    POJ
    POJ
    差分约束
    传递闭包(例题POJ3660)
    arrow,
    分辨率,
  • 原文地址:https://www.cnblogs.com/chenyishi/p/10172220.html
Copyright © 2011-2022 走看看