Interlocked.Exchange не может использоваться с дженериками?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пишу универсальный класс, в котором мне нужно использовать Interlocked.

T test1, test2;
Interlocked.Exchange<T>(ref test1, test2);

Это не скомпилируется. Поэтому я вынужден вместо этого использовать Exchange (Object, Object), даже если MSDN советует не использовать его таким образом?

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

Решение

Это будет работать при условии, что ваш универсальный класс имеет те же ограничения, что и Interlocked.Exchange<T>, а именно where T: class.

Из документов для Interlocked.Exchange

  

Этот метод поддерживает только ссылочные типы

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