zoukankan      html  css  js  c++  java
  • C#的Monitor.Enter和Monitor.Exit

    C#的lock 语句实际上是调用Monitor.Enter和Monitor.Exit,中间夹杂try-finally语句的简略版,下面是实际发生在之前例

    子中的Go方法:

    1
    2
    3
    4
    5
    6
    7
    8
    Monitor.Enter (locker);
     
    try {
        if (val2 != 0) Console.WriteLine (val1 / val2);
      val2 = 0;
    }
    finally { Monitor.Exit (locker);
    }

       在同一个对象上,在调用第一个之前Monitor.Enter而先调用了Monitor.Exit将引发异常。

       Monitor 也提供了TryEnter方法来实现一个超时功能——也用毫秒或TimeSpan,如果获得了锁返回true,反之没有获得返回false,因为超时了。TryEnter也可以没有超时参数,“测试”一下锁,如果锁不能被获取的话就立刻超时。

  • 相关阅读:
    spring注入原型bean
    按时间间隔查询
    Qconf安装文档
    HttpEnum
    MyIfmHttpClient
    enum StatCode
    Linux修改war包中文件
    maven settings.xml windows
    maven settings.xml linux
    docker报错
  • 原文地址:https://www.cnblogs.com/changbaishan/p/10785066.html
Copyright © 2011-2022 走看看