Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1228 of 1492 menu
◀ ▶

Метод 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
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить