public bool FlipIf(bool comparand)
{
int comparandAsInt = Convert.ToInt32(comparand);
int newValueAsInt = Convert.ToInt32(!comparand);
int originalValueAsInt = Interlocked.CompareExchange(ref this.value, newValueAsInt, comparandAsInt);
return originalValueAsInt == comparandAsInt;
}