Поделиться через


Interlocked.Add Метод

Определение

Добавляет два целых числа и заменяет первое число на сумму (атомарная операция).

Перегрузки

Add(Int32, Int32)

Добавляет два 32-разрядных целых числа и заменяет первое число на сумму в одной атомарной операции.

Add(Int64, Int64)

Добавляет два 64-разрядных целых числа и заменяет первое число на сумму в виде атомарной операции.

Add(UInt32, UInt32)

Складывает два 32-разрядных целых числа без знака и заменяет первое число полученной суммой в одной атомарной операции.

Add(UInt64, UInt64)

Складывает два 64-разрядных целых числа без знака и заменяет первое число полученной суммой в одной атомарной операции.

Add(Int32, Int32)

Исходный код:
Interlocked.CoreCLR.cs
Исходный код:
Interlocked.CoreCLR.cs
Исходный код:
Interlocked.CoreCLR.cs

Добавляет два 32-разрядных целых числа и заменяет первое число на сумму в одной атомарной операции.

public:
 static int Add(int % location1, int value);
public static int Add (ref int location1, int value);
static member Add : int * int -> int
Public Shared Function Add (ByRef location1 As Integer, value As Integer) As Integer

Параметры

location1
Int32

Переменная, содержащая первое добавляемое значение. Сумма двух значений сохраняется в location1.

value
Int32

Значение, добавляемое к целому в location1.

Возвращаемое значение

Новое значение, сохраненное в location1 этой операции.

Исключения

Адрес location1 является пустым указателем.

Комментарии

Этот метод обрабатывает условие переполнения путем упаковки: если значение в location1 равно Int32.MaxValue и value равно 1, результат равен Int32.MinValue; если value равен 2, результат будет (Int32.MinValue + 1) и т. д. Исключение не выдается.

См. также раздел

Применяется к

Add(Int64, Int64)

Исходный код:
Interlocked.CoreCLR.cs
Исходный код:
Interlocked.CoreCLR.cs
Исходный код:
Interlocked.CoreCLR.cs

Добавляет два 64-разрядных целых числа и заменяет первое число на сумму в виде атомарной операции.

public:
 static long Add(long % location1, long value);
public static long Add (ref long location1, long value);
static member Add : int64 * int64 -> int64
Public Shared Function Add (ByRef location1 As Long, value As Long) As Long

Параметры

location1
Int64

Переменная, содержащая первое добавляемое значение. Сумма двух значений сохраняется в location1.

value
Int64

Значение, добавляемое к целому в location1.

Возвращаемое значение

Новое значение, сохраненное в location1 этой операции.

Исключения

Адрес location1 является пустым указателем.

Комментарии

Этот метод обрабатывает условие переполнения путем упаковки: если значение в location1 равно Int64.MaxValue и value равно 1, результат равен Int64.MinValue; если value равен 2, результат будет (Int64.MinValue + 1) и т. д. Исключение не выдается.

См. также раздел

Применяется к

Add(UInt32, UInt32)

Исходный код:
Interlocked.cs
Исходный код:
Interlocked.cs
Исходный код:
Interlocked.cs

Важно!

Этот API несовместим с CLS.

Складывает два 32-разрядных целых числа без знака и заменяет первое число полученной суммой в одной атомарной операции.

public:
 static System::UInt32 Add(System::UInt32 % location1, System::UInt32 value);
[System.CLSCompliant(false)]
public static uint Add (ref uint location1, uint value);
[<System.CLSCompliant(false)>]
static member Add : uint32 * uint32 -> uint32
Public Shared Function Add (ByRef location1 As UInteger, value As UInteger) As UInteger

Параметры

location1
UInt32

Переменная, содержащая первое добавляемое значение. Сумма двух значений сохраняется в location1.

value
UInt32

Значение, добавляемое к целому в location1.

Возвращаемое значение

Новое значение, сохраненное в location1 этой операции.

Атрибуты

Исключения

Адрес location1 является указателем null.

Применяется к

Add(UInt64, UInt64)

Исходный код:
Interlocked.cs
Исходный код:
Interlocked.cs
Исходный код:
Interlocked.cs

Важно!

Этот API несовместим с CLS.

Складывает два 64-разрядных целых числа без знака и заменяет первое число полученной суммой в одной атомарной операции.

public:
 static System::UInt64 Add(System::UInt64 % location1, System::UInt64 value);
[System.CLSCompliant(false)]
public static ulong Add (ref ulong location1, ulong value);
[<System.CLSCompliant(false)>]
static member Add : uint64 * uint64 -> uint64
Public Shared Function Add (ByRef location1 As ULong, value As ULong) As ULong

Параметры

location1
UInt64

Переменная, содержащая первое добавляемое значение. Сумма двух значений сохраняется в location1.

value
UInt64

Значение, добавляемое к целому в location1.

Возвращаемое значение

Новое значение, сохраненное в location1 этой операции.

Атрибуты

Исключения

Адрес location1 является указателем null.

Применяется к