Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改临界截面外的锁定对象_C#_.net_Synchronization_Locking - Fatal编程技术网

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
,结果不一致