Interlocked.Exchange, но не для логических значений?

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

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

21.08.2008 12:24:23
1 ОТВЕТ
РЕШЕНИЕ

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

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

8
21.08.2008 12:33:13