作用
提供同步访问对象的机制,实现线程同步。
命名空间&程序集
- 命名空间:System.Threading
- 程序集:System.Threading.dll
常用属性&方法
Monitor.Enter(Object) | 在指定对象上获取排它锁 |
Monitor.Exit(Object) | 释放指定对象上的排它锁 |
Monitor.Pulse | 通知等待队列中的线程锁定对象状态的更改 |
Monitor.PulseAll | 通知所有的等待线程对象状态的更改 |
Monitor.TryEnter(Object) | 试图获取指定对象上的排它锁 |
Monitor.TryEnter(Object,Boolean) | 尝试获取指定对象上的排它锁,并设置一个值,指示是否得到了该锁。 |
Wait(Object) | 释放对象上的锁并阻止当前线程,直到它重新获取该锁。 |
注意事项
1. Enter和Exit是常用的两个方法,使用过程中须注意,为了防止获取锁之后因程序异常导致锁无法释放的情况,需要在try-catch之后的finally结构体中释放锁(Monitor.Exit())。
2. Monitor和TryEnter区别:TryEnter不会像Enter那样阻塞执行,如果线程成功进入关键区域会返回true
标签:Monitor,c#,Object,基础知识,对象,线程,Exit,TryEnter From: https://www.cnblogs.com/mingcore/p/17538284.html