Здравствуйте, Аноним, Вы писали:
А>Как залочить переменную типа bool ?
А>bool m_myBool = false;
А>lock(m_myBool) А>{ А> ... А>}
А>компилятор выдает сл. ошибку :
А>'bool' is not a reference type as required by the lock statement
Здравствуйте, Аноним, Вы писали:
А>Как залочить переменную типа bool ?
А>bool m_myBool = false;
А>lock(m_myBool) А>{ А> ... А>}
А>компилятор выдает сл. ошибку :
А>'bool' is not a reference type as required by the lock statement
У вэлью типов отсутствует SyncBlockIndex, который используется lock.
А зачем тебе ее лочить?
Если тебе нужно потокобезопасно поменять ее значение, то используй Interlocked
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Mink, Вы писали:
M>>Если тебе нужно потокобезопасно поменять ее значение, то используй Interlocked
VD>Если нужно потокобезопасно поменять ее значение, то.................... нужно просто смело менять ее без всяких бессмысленных выкрутасов. Это локальная переменная влью-типа...
Может и да, а может и нет. Обычно префиксом m_ все таки обозначают мемберы классов. И никто не говорил, что этот мембер не статический. Я не думаю что здесь привели рабочий вариант в качестве примера.
VD>А значит она размещается в стэке потока... А значит каждый поток будет иметь ее отдельную копию... А значит блокировки бессмысленны.
VD>ЗЫ
VD>Не ожидал такой кучи некомпетентных ответов, на такой простой вопрос. VD>По сути правильно ответил только АВК, но и тот больше посмеялся.
А зачем вообще нужен класс Interlocked, если с вэлью типами все так шоколадно?
Hello, VladD2!
GIV>> Угу. Это я тоже заметил но счел, что это просто пример такой GIV>> неудачный...
V> Не, пример как раз очень удачный. Сразу выдает полное непонимание сути и V> задач блокировки.
Ну чтож раз два человека с приставкой rsdn говорят, что аноним собрался лочить локальную переменную так тому и быть
Здравствуйте, Mink, Вы писали:
M>Может и да, а может и нет. Обычно префиксом m_ все таки обозначают мемберы классов. И никто не говорил, что этот мембер не статический. Я не думаю что здесь привели рабочий вариант в качестве примера.
Ну, тогда пример явно не очень корректный. Нужно было бы хотя бы три точки поствить. А лучше все же хоть какую функцию написать, или коментарий.
M>А зачем вообще нужен класс Interlocked, если с вэлью типами все так шоколадно?
Уж точно не для работы с булевыми типами. Там как минимум нет ни одного метода для этого типа.
Да и Interlocked это работа без блокировок. Гарантируется только атомарность операций. Если требуются блокировки, то оне совсем не подходит.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Mink, Вы писали:
M>Если тебе нужно потокобезопасно поменять ее значение, то используй Interlocked
Если нужно потокобезопасно поменять ее значение, то.................... нужно просто смело менять ее без всяких бессмысленных выкрутасов. Это локальная переменная влью-типа... А значит она размещается в стэке потока... А значит каждый поток будет иметь ее отдельную копию... А значит блокировки бессмысленны.
ЗЫ
Не ожидал такой кучи некомпетентных ответов, на такой простой вопрос.
По сути правильно ответил только АВК, но и тот больше посмеялся.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.