Нужно ли для потоковой блокировки типов значений (в частности, логическое) - PullRequest
0 голосов
/ 29 декабря 2011

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

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

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

1 Ответ

0 голосов
/ 29 декабря 2011

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

...