zoukankan      html  css  js  c++  java
  • AutoResetEvent和ManualResetEvent用法示例

    using System;
    using System.Threading;

    namespace ResetEvent{

    public class EntryPoint{
    static AutoResetEvent auto = new AutoResetEvent(false);
    static ManualResetEvent manual = new ManualResetEvent(false);
    static EventWaitHandle eventWait = new EventWaitHandle(false,EventResetMode.AutoReset);

    public static void Main(string[] args){
    eventWait = auto;
    ManualResetEventMethodRun();
    // AutoResetEventMethodRun();
    }
    #region AutoResetEventMethod

    static void AutoResetEventMethodRun(){
    Thread t = new Thread(AutoResetEventMethod);
    Console.WriteLine("AutoResetEvent Main Begin...");
    t.Start();
    Thread.Sleep(5000);
    auto.Set();
    // Thread.Sleep(5000);
    Console.WriteLine("AutoResetEvent Main End...");
    Console.Read();
    }
    static void AutoResetEventMethod(){
    Console.WriteLine("AutoResetEvent Sub Begining......");
    auto.WaitOne();
    // auto.Set();
    Console.WriteLine("AutoResetEvent to do something 1......");
    auto.WaitOne();
    Console.WriteLine("AutoResetEvent to do something 2......");
    Console.WriteLine("AutoResetEvent Sub Ending......");

    }

    #endregion

    #region ManualResetEventMethod

    static void ManualResetEventMethodRun(){
    Thread t = new Thread(ManualResetEventMethod);
    Console.WriteLine("ManualResetEventMethod Main Begin...");
    t.Start();
    Thread.Sleep(5000);
    manual.Set();
    // Thread.Sleep(5000);
    Console.WriteLine("ManualResetEventMethod Main End...");
    Console.Read();
    }

    static void ManualResetEventMethod()
    {
    Console.WriteLine("ManualResetEventMethod Sub Begining......");
    manual.WaitOne();
    Console.WriteLine("ManualResetEventMethod to do something 1......");
    manual.Reset();
    manual.WaitOne();
    Console.WriteLine("ManualResetEventMethod to do something 2......");
    Console.WriteLine("ManualResetEventMethod Sub Ending......");
    }
    #endregion
    }

    }

  • 相关阅读:
    变量可变性问题
    Android 创建Listener监听器形式选择:匿名内部类?外部类?
    linux下安装zookeeper
    翻页工具类
    将哈夫曼树转化成二叉树
    Activity的启动流程分析
    题目1186:打印日期
    数据库设计--数据流图(DFD)
    c#基础之数组
    10.3.1 一个CONNECT BY的样例
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2653268.html
Copyright © 2011-2022 走看看