This topic has not yet been rated Rate this topic

Interlocked.Read Method

Returns a 64-bit value, loaded as an atomic operation.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)
public static long Read(
	ref long location
)

Parameters

location
Type: System.Int64%
The 64-bit value to be loaded.

Return Value

Type: System.Int64
The loaded value.

The Read method is unnecessary on 64-bit systems, because 64-bit read operations are already atomic. On 32-bit systems, 64-bit read operations are not atomic unless performed using Read.

The Read method and the 64-bit overloads of the Increment, Decrement, and Add methods are truly atomic only on systems where a System.IntPtr is 64 bits long. On other systems, these methods are atomic with respect to each other, but not with respect to other means of accessing the data. Thus, to be thread safe on 32-bit systems, any access to a 64-bit value must be made through the members of the Interlocked class.

Note Note

IntPtr is a platform-specific type.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Additional information

This function is equivalent to:

return Interlocked.CompareExchange(ref location, 0, 0);

(using the UInt64 override) and in fact, this is exactly and entirely what the internal implementation of Interlocked.Read does.

Syntax is missing a usage example
(vb)
Dim location As Long
Dim returnValue As Long

returnValue = Interlocked.Read(location)