Monitor关键字

Monitor提供同步访问对象的机制。

Monitor方法

Enter(Object) 在指定对象上获取排他锁。

Enter(Object,Boolean) 获取指定对象上的排他锁,并自动获取一个值,指示是否获取了该锁

Exit(Object) 释放指定对象上的排他锁

IsEntered(Object) 确定当前线程是否保留着指定对象上的锁

 Pulse(Object) 通知等待队列中的线程锁定对象状态的更改

PulseAll(Object) 通知所有等待的线程锁定对象状态的更改

TryEnter(Object) 尝试获取指定对象的排他锁

TryEnter(Object,Boolean)  尝试获取指定对象上的排他锁,并自动设置一个值,指示是否获取了该锁

TryEnter(Object,Int32) 在指定的毫秒数内,尝试获取指定对象上的排他锁

TryEnter(Object,Int32,Boolean)  在指定的毫秒数内,尝试获取指定对象上的排他锁,并自动设置一个值,指示是否获取了该锁

Wait(Object) 释放对象上的锁并阻止当前线程,直到它重新获取该锁

Wait(Object,Int32) 释放对象上的锁并阻止当前线程,直到它重新获取该锁。如果已用指定的超时间隔,则线程进入等待队列

lock关键字实际上是一个语法糖,它将Monitor对象进行封装。

       try
            {
                Monitor.Enter(obj);
                //dosomething();
            }
            catch(Exception ex)
            {
                
            }
            finally
            {
                Monitor.Exit(obj);
            }
原文地址:https://www.cnblogs.com/larry-xia/p/9256753.html