Struct InterlockedInt64
A lightweight representation of an Interlocked (atomic) long.
public struct InterlockedInt64 : IEquatable<InterlockedInt64>, IComparable<InterlockedInt64>, IComparable
- Implements
- Inherited Members
- Extension Methods
Constructors
InterlockedInt64(long)
Creates a new InterlockedInt64 instance.
public InterlockedInt64(long value)
Parameters
valuelongInitial value.
Properties
Value
Current value.
public long Value { get; }
Property Value
Methods
Add(long)
Adds provided value to the current Value.
public long Add(long value)
Parameters
valuelongValue to add.
Returns
And(long)
Performs a bitwise and operation on the current Value and the provided value
and stores the result in Value.
public long And(long value)
Parameters
valuelongValue to bitwise and.
Returns
CompareExchange(long, long)
Sets Value to the provided value
only if the current Value is equal to the provided comparand
and returns the old value.
public long CompareExchange(long value, long comparand)
Parameters
Returns
CompareTo(InterlockedInt64)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
[Pure]
public int CompareTo(InterlockedInt64 other)
Parameters
otherInterlockedInt64An object to compare with this instance.
Returns
- int
A value that indicates the relative order of the objects being compared. The return value has these meanings:
Value Meaning Less than zero This instance precedes otherin the sort order.Zero This instance occurs in the same position in the sort order as other.Greater than zero This instance follows otherin the sort order.
CompareTo(object?)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
[Pure]
public int CompareTo(object? obj)
Parameters
objobjectAn object to compare with this instance.
Returns
- int
A value that indicates the relative order of the objects being compared. The return value has these meanings:
Value Meaning Less than zero This instance precedes objin the sort order.Zero This instance occurs in the same position in the sort order as obj.Greater than zero This instance follows objin the sort order.
Exceptions
- ArgumentException
objis not the same type as this instance.
Decrement()
Decrements the current Value by 1.
public long Decrement()
Returns
Equals(InterlockedInt64)
Indicates whether the current object is equal to another object of the same type.
[Pure]
public bool Equals(InterlockedInt64 other)
Parameters
otherInterlockedInt64An object to compare with this object.
Returns
Equals(object?)
Indicates whether this instance and a specified object are equal.
[Pure]
public override bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current instance.
Returns
- bool
true if
objand this instance are the same type and represent the same value; otherwise, false.
Exchange(long)
Sets Value to the provided value and returns the old value.
public long Exchange(long value)
Parameters
valuelongValue to set.
Returns
GetHashCode()
Returns the hash code for this instance.
[Pure]
public override int GetHashCode()
Returns
- int
A 32-bit signed integer that is the hash code for this instance.
Increment()
Increments the current Value by 1.
public long Increment()
Returns
Or(long)
Performs a bitwise or operation on the current Value and the provided value
and stores the result in Value.
public long Or(long value)
Parameters
valuelongValue to bitwise or.
Returns
Subtract(long)
Subtracts provided value from the current Value.
public long Subtract(long value)
Parameters
valuelongValue to subtract.
Returns
ToString()
Returns a string representation of this InterlockedInt64 instance.
[Pure]
public override string ToString()
Returns
- string
String representation.
Write(long)
Sets Value to the provided value.
public bool Write(long value)
Parameters
valuelongValue to set.
Returns
- bool
true when value has changed, otherwise false.
Write(long, long)
public bool Write(long value, long expected)
Parameters
Returns
- bool
true when value has changed, otherwise false.
Operators
operator ==(InterlockedInt64, InterlockedInt64)
Checks if a is equal to b.
public static bool operator ==(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when operands are equal, otherwise false.
operator >(InterlockedInt64, InterlockedInt64)
Checks if a is greater than b.
public static bool operator >(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when
ais greater thanb, otherwise false.
operator >=(InterlockedInt64, InterlockedInt64)
Checks if a is greater than or equal to b.
public static bool operator >=(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when
ais greater than or equal tob, otherwise false.
operator !=(InterlockedInt64, InterlockedInt64)
Checks if a is not equal to b.
public static bool operator !=(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when operands are not equal, otherwise false.
operator <(InterlockedInt64, InterlockedInt64)
Checks if a is less than b.
public static bool operator <(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when
ais less thanb, otherwise false.
operator <=(InterlockedInt64, InterlockedInt64)
Checks if a is less than or equal to b.
public static bool operator <=(InterlockedInt64 a, InterlockedInt64 b)
Parameters
aInterlockedInt64First operand.
bInterlockedInt64Second operand.
Returns
- bool
true when
ais less than or equal tob, otherwise false.