zoukankan      html  css  js  c++  java
  • ManualResetEvent和AutoResetEvent

    //ManualResetEvent reset=new ManualResetEvent(false);
    AutoResetEvent reset = new AutoResetEvent(false);
    ThreadPool.QueueUserWorkItem((WaitCallback)
    delegate
    {
    Console.WriteLine(
    "Thread 1 wait one..");
    reset.WaitOne();
    Console.WriteLine(
    "Thread 1 got");
    });

    ThreadPool.QueueUserWorkItem((WaitCallback)
    delegate
    {
    Console.WriteLine(
    "Thread 2 wait one..");
    reset.WaitOne();
    Console.WriteLine(
    "Thread 2 got");
    });
    ThreadPool.QueueUserWorkItem((WaitCallback)
    delegate
    {
    Console.WriteLine(
    "Thread 3 wait one..");
    reset.WaitOne();
    Console.WriteLine(
    "Thread 3 got");
    });
    Console.ReadLine();
    reset.Set();
    Console.WriteLine(
    "ok");

    二者区别在于:AutoResetEvent 会在获取到控制权时自动设置事件为非终止状态。常用于多线程中独占资源,类似lock

  • 相关阅读:
    [TCP/IP]TCP的三次握手和四次挥手

    思考
    jQuery完整的事件委托(on())
    jQuery队列动画
    jQuery自定义动画
    jQuery淡入淡出
    jQuery滑动动画
    jQuery基本动画
    jQuery基础3
  • 原文地址:https://www.cnblogs.com/djian/p/2019744.html
Copyright © 2011-2022 走看看