2012-01-12 2 views
1

Предположим, что я следующий кодИзменить объект блокировки за пределами критической секции

Rectangle rect = new Rectangle(); 
lock(rect) 
{ 
    ---- 
    --- 
    --- 
} 

Может ли объект Прямоугольник, или его свойства будут модифицированы в другом потоке, в то время как один поток приобрел замок, и выполняется в критической секции ,

ответ

2

Может ли объект Прямоугольник, или его свойства можно изменить в какой-либо другой нити, в то время как один поток приобрел замок, и выполнение в критической секции.

Если все кода, который получает доступ, что объект сначала пытается получить ту же блокировку, а затем N:

без блокировки кода обертки, то да другой поток может (и в какой-то момент будет) написать rect с несогласованными результатами.

Смежные вопросы