Здравствуйте, SergeyGubanov, Вы писали:
SG>Реализация критической секции на Interlocked.Exchange
SG>Второй вариант правильный или нет?
Не правильный. Комбинирование атомарных и неатомарных операций над одной переменной недопустимо. Контекст может переключиться во время выполнения flag = 0;.