Esiste un metodo come questo in qualsiasi parte del framework?Esiste un metodo di scambio generico nel framework?
public static void Swap<T>(ref T left, ref T right) {
T temp;
temp = left;
left = right;
right = temp;
}
In caso negativo, per quale motivo?
Interlocked.Exchange imposta un valore, in realtà non scambia valori. Dovresti comunque salvare una temperatura e chiamare due volte Interlocked.Exchange, in modo da non ottenere alcun guadagno. – jrista
Interlocked.Exchange non è realmente equivalente allo Swap specificato. Cambia solo il primo valore e non tocca il secondo (stesso). –
@Mehdrad: left = InterlockedExchange (ref right, left); –