using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Task.Run(() => addItems(list));
Task.Run(() => removeItems(list));
Console.WriteLine("Started. Press <return> to exit");
static void addItems(List<int> list)
for (int i = 0; i < 100_000; ++i)
Volatile.Write(ref finished, true);
Console.WriteLine("Finished writing items");
static void removeItems(List<int> list)
List<int> result = new();
Volatile.Read(ref finished);
Console.WriteLine($"Finished reading {result.Count} items");