Interlocked

Interlocked CF 1.0, ECMA 1.0

System.Threading (mscorlib.dll) sealed class

The static members of this class provide thread safety for common built-in arithmetic operations, such as increasing and decreasing a variable by one, and exchanging variables .

If two threads increment the same variable, one thread could be interrupted after both have retrieved the initial value of the variable. If this happens, then both operations store the same value, meaning that the variable has been incremented once instead of twice. The Interlocked methods protect against this kind of error. Increment( ) and Decrement( ) increase and decrease a variable by one, respectively, and Exchange( ) switches two variables. CompareExchange( ) compares the first two variables and, if true , assigns the third value to the first variable.

 public sealed class  Interlocked  {  // Public Static Methods  public static int  CompareExchange  (ref int   location1   , int   value   , int   comparand   );    public static object  CompareExchange  (ref object   location1   , object   value   , object   comparand   );    public static float  CompareExchange  (ref float   location1   , float   value   , float   comparand   );    public static int  Decrement  (ref int   location   );    public static long  Decrement  (ref long   location   );    public static int  Exchange  (ref int   location1   , int   value   );    public static object  Exchange  (ref object   location1   , object   value   );    public static float  Exchange  (ref float   location1   , float   value   );    public static int  Increment  (ref int   location   );    public static long  Increment  (ref long   location   ); } 


C# in a Nutshell
C # in a Nutshell, Second Edition
ISBN: 0596005261
EAN: 2147483647
Year: 2005
Pages: 963

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net