Interlocked.Exchange не может использоваться с дженериками?
-
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
Этот метод поддерживает только ссылочные типы
Не связан с StackOverflow