Como posso definir um valor mínimo em .Net sem usar um bloqueio?
Eu tenho vários threads acessando variáveis. Eu sei como escrever spinlocks e usar os métodos Threading.Interlocked para incrementar variáveis etc.
No entanto, quero executar o equivalente a:
a = Math.Min(a, b)
or
a = a | 10
... mas sem usar uma seção crítica. Isso é possível? Eu sei que a segunda linha é possível no assembler, mas não há método Interlocked.Or.