Is there some good reason for the return value of Interlocked.CompareExchange
问题 The Interlocked.CompareExchange() method (docs) does roughly speaking this: "I have a variable, and I think I know what value it currently has. If I'm right, then please change the value to that". The point being that this method can be used to safely update a variable in a multi-threaded context. If the value has changed since the caller thought it knew what the value was, then some other thread has made that change, so this thread needs to retry (or whatever other behaviour is appropriate)