Существует ли эквивалент для Interlocked.Exchange для булевых?
Как атомный обмен значениями, которые возвращают предыдущее значение и не требуют блокировок?
Ответ 1
Нет; используйте целые числа вместо booleans.
В принципе, такая вещь может быть написана (cmpxchg, основная инструкция процессора, может работать с 8, 16, 32 и 64-битными операндами на x86, 8, 16, 32, 64 и 128-битных операндах на x64), но на практике большинство API-интерфейсов имеют указатели на указатель и двойной указатель (32 и 64-разрядные на х86, 64 и 128-разрядные на x64) операндах, потому что все они вам действительно нужны.