Corlib.Threading.AtomicUInt64.CompareExchange C# (CSharp) Method

CompareExchange() public method

Compares the type's value with comparand for equality, and if they're equal, replaces the value with value
public CompareExchange ( ulong value, ulong comparand ) : ulong
value ulong the replacement value
comparand ulong the value to compare against
return ulong
        public ulong CompareExchange(ulong value, ulong comparand)
        {
            long comparand_ = Calculate (comparand);
            long value_ = Calculate (value);
            long original = Interlocked.CompareExchange (ref _value, value_, comparand_);

            if (original.Equals (comparand_))
                return comparand;
            else
                return Calculate (original);
        }