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

StackOverflow https://stackoverflow.com/questions/19713

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top