C# 修改临界截面外的锁定对象
假设我有以下代码C# 修改临界截面外的锁定对象,c#,.net,synchronization,locking,C#,.net,Synchronization,Locking,假设我有以下代码 Rectangle rect = new Rectangle(); lock(rect) { ---- --- --- } 当一个线程获得锁并在关键部分执行时,可以在其他线程中修改rect对象或其属性 rect对象或其属性是否可以在其他方式中修改 线程,而一个线程已获得锁,并在中执行 临界截面 如果访问该对象的所有代码首先尝试获取相同的锁,则不会 如果没有锁定代码包装器,那么是的,另一个线程可以(并且在某些时候会)写入rect,结果不一致
Rectangle rect = new Rectangle();
lock(rect)
{
----
---
---
}
当一个线程获得锁并在关键部分执行时,可以在其他线程中修改rect对象或其属性
rect对象或其属性是否可以在其他方式中修改
线程,而一个线程已获得锁,并在中执行
临界截面
如果访问该对象的所有代码首先尝试获取相同的锁,则不会
如果没有锁定代码包装器,那么是的,另一个线程可以(并且在某些时候会)写入rect
,结果不一致