2011-12-29 2 views
0

Я знаю, что я не могу использовать замок (SyncLock) на тип значения, как описано в этой статье:Нужно ли мне нить блокировки типов значений (Boolean, в частности)

http://msdn.microsoft.com/msdnmag/issues/03/01/NET/

Но мой вопрос есть, значит ли это, что мне не нужно? или мне нужно обернуть Boolean внутри объекта, чтобы его можно было заблокировать? Если ответ отрицательный, мне не нужно его блокировать, что происходит, когда два потока пытаются изменить значение в одно и то же время? В приложении, в котором я сейчас работаю, возможно, что два потока могут одновременно установить значение true и false.

ответ

0

Логическое, само по себе, не требует блокировки.
Если он изменяется под ногами, вы можете получить старое значение или новое значение, и все в порядке.
Обычно, однако, переменная не существует сама по себе. Это значение связано со значением других, и вам нужно защитить всю группу.
Например, у вас может быть список и логическое указание, если оно заполнено. Вам нужен замок, который охватывает их оба, чтобы они не совпадали.

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