Использование операции Interlocked.CompareExchange () с логическим значением?

У меня два вопроса:

  1. Есть ли необходимость использовать класс Interlocked для доступа к логическим значениям? Разве чтение или запись логического значения по умолчанию не является атомарным?

  2. Я попытался использовать Interlocked.CompareExchange для логического значения и получил следующую ошибку:

     bool value = true;
    Interlocked.CompareExchange  (значение ссылки, ложь, истина);
     

    Ошибка: тип 'bool' должен быть ссылочным типом, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе 'System.Threading.Interlocked.CompareExchange (ref T, T, T)'

Как мне решить эту проблему?

26
задан kot-da-vinci 6 November 2019 в 11:52
поделиться