I have multiple threads accessing variables. I know how to write spinlocks and use the Threading.Interlocked methods to increment etc. variables.
However, I want to
If you don't anticipate a great deal of contention then perhaps something like this? (If there's likely to be a lot of contention then a plain lock might well be more efficient.)
int original; // assuming here that a is an int
do
{
original = a;
} while (Interlocked.CompareExchange(ref a, original | 10, original) != original)