MSDN:递归策略用于确定对进入锁定状态多次的线程的限制。 LockRecursionPolicy.NoRecursion and a thread has entered the lock in read mode, LockRecursionException is thrown if the thread tries to reenter the lock in read mode.">例如,如果锁定通过 LockRecursionPolicy.NoRecursion 创建,并且某个线程进入了读取模式的锁定,如果该线程尝试重新进入读取模式的锁定时,将引发 LockRecursionException。 LockRecursionException is thrown if the thread tries to reenter the lock in any mode.">同样的,如果某个线程进入了写入模式的锁定,则当该线程尝试重新进入任意模式的锁定时,将引发 LockRecursionException。
注意 |
---|
不论锁定递归策略如何设置,处于可升级模式的线程都可以升级为写入模式或降级为读取模式。 |
不论采用何种递归策略,最初进入读取模式的线程都不允许升级为可升级模式或写入模式,这是因为这种方式导致死锁的可能性极大。