Метод Exchange
Interlocked.Exchange возвращает
значение до подмены. Условная запись -
CompareExchange.
Обзор -
Interlocked.
Синтаксис
int previous = Interlocked.Exchange(ref location, 12345);
Пример
Давайте подменим 1 на
12345:
using System;
using System.Threading;
class Program
{
static void Main()
{
int location = 1;
int old = Interlocked.Exchange(ref location, 12345);
Console.WriteLine(old);
Console.WriteLine(location);
}
}
Результат выполнения кода:
1
12345
Пример
Давайте повторно обменять уже
12345:
using System;
using System.Threading;
class Program
{
static void Main()
{
int location = 12345;
int old = Interlocked.Exchange(ref location, 1);
Console.WriteLine(old);
Console.WriteLine(location);
}
}
Результат выполнения кода:
12345
1
Пример
Давайте записать строку через
Exchange для ссылочного типа:
using System;
using System.Threading;
class Program
{
static void Main()
{
string? location = "abcde";
string? old = Interlocked.Exchange(
ref location, "12345");
Console.WriteLine(old);
Console.WriteLine(location);
}
}
Результат выполнения кода:
"abcde"
"12345"
Смотрите также
-
метод
CompareExchange,
подмена при совпадении -
метод
Add,
прибавить к числу -
Volatile.Write,
запись без атомарной подмены -
Interlocked,
класс, где объявленExchange