¿Cómo puedo establecer un valor mínimo en .Net sin usar un candado?

Tengo múltiples hilos accediendo a variables. Sé cómo escribir spinlocks y usar los métodos Threading.Interlocked para incrementar las variables, etc.

Sin embargo, quiero realizar el equivalente de:

a = Math.Min(a, b)
or
a = a | 10

... pero sin usar una sección crítica. es posible? Sé que la segunda línea es posible en ensamblador, pero no hay ningún método Interlocked.Or.

Respuestas a la pregunta(2)

Su respuesta a la pregunta