Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace Recetas.CSharp.Cap04.R0411
  5. {
  6.     public sealed class UsoAdd
  7.     {
  8.         // Valor de dato compartido entre threads:
  9.         private static int variable;
  10.        
  11.         public static void Main()
  12.         {
  13.             // Creación de dos threads:
  14.             Thread t1 = new Thread(Sumar);
  15.             Thread t2 = new Thread(Sumar);
  16.            
  17.             // Inicio de la ejecución de los dos threads:
  18.             t1.Start();
  19.             t2.Start();
  20.            
  21.             // Espera su finalización:
  22.             t1.Join();
  23.             t2.Join();
  24.            
  25.             // Muestra el valor final de `variable`:
  26.             Console.WriteLine ("\nValor de `variable`: {0}\n", variable.ToString());
  27.         }
  28.        
  29.         private static void Sumar()
  30.         {
  31.             // Suma 2 a `variable`:
  32.             Interlocked.Add (ref variable, 2);
  33.         }
  34.     }
  35. }