# Interlocked Methods

**.NET Framework 4.6 and 4.5**

The Interlocked type exposes the following members.

Name | Description | |
---|---|---|

Add(Int32, Int32) | Adds two 32-bit integers and replaces the first integer with the sum, as an atomic operation. | |

Add(Int64, Int64) | Adds two 64-bit integers and replaces the first integer with the sum, as an atomic operation. | |

CompareExchange(Double, Double, Double) | Compares two double-precision floating point numbers for equality and, if they are equal, replaces the first value. | |

CompareExchange(Int32, Int32, Int32) | Compares two 32-bit signed integers for equality and, if they are equal, replaces the first value. | |

CompareExchange(Int64, Int64, Int64) | Compares two 64-bit signed integers for equality and, if they are equal, replaces the first value. | |

CompareExchange(IntPtr, IntPtr, IntPtr) | Compares two platform-specific handles or pointers for equality and, if they are equal, replaces the first one. | |

CompareExchange(Object, Object, Object) | Compares two objects for reference equality and, if they are equal, replaces the first object. | |

CompareExchange(Single, Single, Single) | Compares two single-precision floating point numbers for equality and, if they are equal, replaces the first value. | |

CompareExchange<T>(T, T, T) | Compares two instances of the specified reference type T for equality and, if they are equal, replaces the first one. | |

Decrement(Int32) | Decrements a specified variable and stores the result, as an atomic operation. | |

Decrement(Int64) | Decrements the specified variable and stores the result, as an atomic operation. | |

Exchange(Double, Double) | Sets a double-precision floating point number to a specified value and returns the original value, as an atomic operation. | |

Exchange(Int32, Int32) | Sets a 32-bit signed integer to a specified value and returns the original value, as an atomic operation. | |

Exchange(Int64, Int64) | Sets a 64-bit signed integer to a specified value and returns the original value, as an atomic operation. | |

Exchange(IntPtr, IntPtr) | Sets a platform-specific handle or pointer to a specified value and returns the original value, as an atomic operation. | |

Exchange(Object, Object) | Sets an object to a specified value and returns a reference to the original object, as an atomic operation. | |

Exchange(Single, Single) | Sets a single-precision floating point number to a specified value and returns the original value, as an atomic operation. | |

Exchange<T>(T, T) | Sets a variable of the specified type T to a specified value and returns the original value, as an atomic operation. | |

Increment(Int32) | Increments a specified variable and stores the result, as an atomic operation. | |

Increment(Int64) | Increments a specified variable and stores the result, as an atomic operation. | |

MemoryBarrier | Synchronizes memory access as follows: The processor that executes the current thread cannot reorder instructions in such a way that memory accesses before the call to MemoryBarrier execute after memory accesses that follow the call to MemoryBarrier. | |

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

Show: