using System;
using System.Threading;
namespace Recetas.CSharp.Cap04.R0411
{
public sealed class UsoAdd
{
// Valor de dato compartido entre threads:
private static int variable;
public static void Main()
{
// Creación de dos threads:
Thread t1 = new Thread(Sumar);
Thread t2 = new Thread(Sumar);
// Inicio de la ejecución de los dos threads:
t1.Start();
t2.Start();
// Espera su finalización:
t1.Join();
t2.Join();
// Muestra el valor final de `variable`:
Console.WriteLine ("\nValor de `variable`: {0}\n", variable.ToString());
}
private static void Sumar()
{
// Suma 2 a `variable`:
Interlocked.Add (ref variable, 2);
}
}
}