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

Метод Read

Volatile.Read читает значение так, чтобы не использовать устаревшую копию из регистра. Запись - Write. Для атомарного ++ берут Interlocked.

Синтаксис

int value = Volatile.Read(ref location);

Пример

Давайте прочитать после Volatile.Write:

using System; using System.Threading; class Program { static void Main() { int location = 0; Volatile.Write(ref location, 12345); int res = Volatile.Read(ref location); Console.WriteLine(res); } }

Результат выполнения кода:

12345

Пример

Давайте прочитать строку "abcde":

using System; using System.Threading; class Program { static void Main() { string? location = null; Volatile.Write(ref location, "abcde"); string? res = Volatile.Read(ref location); Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте прочитать после обычного присваивания в одном потоке:

using System; using System.Threading; class Program { static void Main() { int location = 0; location = 12345; int res = Volatile.Read(ref location); Console.WriteLine(res); } }

Результат выполнения кода:

12345

Смотрите также

  • метод Write,
    записать перед чтением
  • Volatile,
    класс, где объявлен Read
  • Increment,
    атомарное изменение счётчика
  • Interlocked,
    операции без гонки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить