Я думаю, что это относится к таким функциям, как Interlocked.CompareExchange
.
Этот метод может использоваться, например, для атомарного обновления double
:
static void Add(ref double field, double amount)
{
double before, after;
do
{
before = field;
after = before + amount;
}
while (Interlocked.CompareExchange(ref field, after, before) != before);
}