Interlocked.Exchange non può essere utilizzato con generici?
-
05-07-2019 - |
Domanda
Sto scrivendo una classe generica in cui devo usare Interlocked.
T test1, test2;
Interlocked.Exchange<T>(ref test1, test2);
Questo non verrà compilato. Quindi sono costretto a usare Exchange (Object, Object) invece che anche i consigli di MSDN di non usarlo in questo modo?
Soluzione
Funzionerà, a condizione che la tua classe generica abbia gli stessi vincoli di Interlocked.Exchange<T>
, vale a dire where T: class
.
Dai documenti per Interlocked.Exchange :
Questo metodo supporta solo tipi di riferimento
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow