Interlocked.Exchange, но не для логических значений? - PullRequest
11 голосов
/ 21 августа 2008

Есть ли эквивалент для Interlocked.Exchange для логического значения?

Например, атомарный обмен значениями, который возвращает предыдущее значение и не требует блокировок?

1 Ответ

8 голосов
/ 21 августа 2008

Нет; используйте целые числа вместо логических.

В принципе, такое можно написать (cmpxchg, базовая инструкция процессора, может работать с 8, 16, 32 и 64-битными операндами на x86, 8, 16, 32, 64 и 128-битными операндами. x64), но на практике большинство API придерживаются операндов указателя и двойного указателя (32- и 64-разрядных в x86, 64 и 128-разрядных в x64), потому что это все, что вам действительно нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...