Wie kann ich in .Net einen Mindestwert festlegen, ohne eine Sperre zu verwenden?

Ich habe mehrere Threads, die auf Variablen zugreifen. Ich kann Spinlocks schreiben und die Threading.Interlocked-Methoden zum Inkrementieren von Variablen usw. verwenden.

Ich möchte jedoch das Äquivalent von: @ ausführ

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

... aber ohne kritischen Abschnitt. Ist das möglich? Ich weiß, dass die 2. Zeile in Assembler möglich ist, aber es gibt keine Interlocked.Or-Methode.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage