Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Interlocked.Exchange Generic Method (T, T)

Note: This method is new in the .NET Framework version 2.0.

Sets a variable of the specified type T to a specified value and returns the original value, as an atomic operation.

Namespace: System.Threading
Assembly: mscorlib (in mscorlib.dll)

public static T Exchange<T> (
	ref T location1,
	T value
J# supports the use of generic types and methods, but not the declaration of new ones.
JScript does not support generic types and methods.

Type Parameters


The type to be used for location1 and value. This type must be a reference type.



The variable to set to the specified value. This is a reference parameter (ref in C#, ByRef in Visual Basic).


The value to which the location1 parameter is set.

Return Value

The original value of location1.

Exception typeCondition


The address of location1 is a null pointer.

This method only supports reference types. There are overloads of the Exchange method for the value types Int32, Int64, IntPtr, Single, and Double, but there is no support for other value types.


This method overload is preferable to the Exchange(Object,Object) method overload, because the latter requires the destination object to be accessed late-bound.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

.NET Compact Framework

Supported in: 2.0

Community Additions

© 2015 Microsoft