Interlocked.CompareExchange <Int> używa GreaterThan lub LessThan zamiast równości

TheSystem.Threading.Interlocked obiekt umożliwia dodawanie (odejmowanie) i porównywanie jako operację atomową. Wydaje się, że CompareExchange, która po prostu nie robi równości, ale także GreaterThan / LessThan jako porównanie atomowe, byłaby bardzo cenna.

Byłoby hipotetyczneInterlocked.GreaterThan funkcja IL, czy jest to funkcja na poziomie procesora? Obie?

Czy nie ma innej opcji, czy można utworzyć taką funkcję w C ++ lub bezpośrednim kodzie IL i udostępnić tę funkcję C #?