Сведения о вопросе

DED

04:19, 9th August, 2020

Теги

.net   multithreading    

Interlocked.Exchange, но не для булевых чисел?

Просмотров: 428   Ответов: 1

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

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



  Сведения об ответе

PROGA

16:04, 7th August, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться