Advertisement
Fhernd

UsoClaseInterlocked.cs

Aug 7th, 2014
1,563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.23 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace Recetas.CSharp.Cap04.R0411
  5. {
  6.     public sealed class UsoClaseInterlocked
  7.     {
  8.         public static void Main()
  9.         {
  10.             // Valores enteros para demostración:
  11.             int num1 = 1111;
  12.             int num2 = 3553;
  13.            
  14.             // Valores iniciales de los dos números enteros:
  15.             Console.WriteLine ("\nValor de `num1`: {0}", num1.ToString());
  16.             Console.WriteLine ("\nValor de `num2`: {0}", num2.ToString());
  17.            
  18.             // Uso de `Interlocked.Decrement`:
  19.             // Equivalencia: num1 = num1 - 1;
  20.             Interlocked.Decrement(ref num1);
  21.            
  22.             Console.WriteLine ("\nNuevo valor de `num1` después de Decrement: {0}", num1.ToString());
  23.            
  24.             // Uso de `Interlocked.Increment`:
  25.             // Equivalencia: num2 = num2 + 1;
  26.             Interlocked.Increment(ref num2);
  27.            
  28.             Console.WriteLine ("\nNuevo valor de `num2` después de Increment: {0}", num2.ToString());
  29.            
  30.             // Uso de `Interlocked.Add`:
  31.             // Equivalencia: num1 = num1 + num2;
  32.             Interlocked.Add(ref num1, num2);
  33.            
  34.             // Valores actualizados:
  35.             Console.WriteLine ("\nValor de `num1` después de Add: {0}", num1.ToString());
  36.             Console.WriteLine ("Valor de `num2` después de Add: {0}", num2.ToString());
  37.            
  38.             // Uso de `Interlocked.Exchange`:
  39.             // Equivalencia: num2 = num1;
  40.             Interlocked.Exchange(ref num2, num1);
  41.            
  42.             Console.WriteLine ("\nValor de `num1` después de Exchange: {0}", num1.ToString());
  43.             Console.WriteLine ("Valor de `num2` después de Exchange: {0}", num2.ToString());
  44.            
  45.             // Uso de `Interlocked.CompareExchange`:
  46.             // Equivalencia: if (num1 == num2) num1 = 4664;
  47.             Interlocked.CompareExchange(ref num1, 4664, num2);
  48.            
  49.             // Valores actualizados:
  50.             Console.WriteLine ("\nValor de `num1` después de CompareExchange: {0}", num1.ToString());
  51.             Console.WriteLine ("Valor de `num2` después de CompareExchange: {0}\n", num2.ToString());
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement