using System;
using System.Threading;
namespace Recetas.Multithreading.Cap01
{
public sealed class NuevoThread
{
private int valor;
public NuevoThread (int v)
{
valor = v;
}
// Método que será ejecutado en un nuevo thread:
public void MetodoThread()
{
Console.WriteLine ("El valor de la variable `valor` es: {0}", valor.ToString());
}
public static void Main()
{
// Creamos una instancia de `NuevoThread` e inicializamos en 7
// el campo `valor`:
NuevoThread nt = new NuevoThread(7);
// Creamos un nuevo `Thread` y pasamos como argumento al constructor
// una instancia del delegado `ThreadStart`, el cual encapsula
// al método de instancia `MetodoThread`:
Thread thread = new Thread( new ThreadStart(nt.MetodoThread));
// Se inicia la ejecución del thread:
thread.Start();
Console.WriteLine( "El método `Main` ha terminado. Presione Enter para terminar...");
Console.ReadLine ();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nOwoKbmFtZXNwYWNlIFJlY2V0YXMuTXVsdGl0aHJlYWRpbmcuQ2FwMDEKewogICAgcHVibGljIHNlYWxlZCBjbGFzcyBOdWV2b1RocmVhZAogICAgewogICAgICAgIHByaXZhdGUgaW50IHZhbG9yOwogICAgICAgIAogICAgICAgIHB1YmxpYyBOdWV2b1RocmVhZCAoaW50IHYpCiAgICAgICAgewogICAgICAgICAgICB2YWxvciA9IHY7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIE3DqXRvZG8gcXVlIHNlcsOhIGVqZWN1dGFkbyBlbiB1biBudWV2byB0aHJlYWQ6CiAgICAgICAgcHVibGljIHZvaWQgTWV0b2RvVGhyZWFkKCkKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiRWwgdmFsb3IgZGUgbGEgdmFyaWFibGUgYHZhbG9yYCBlczogezB9IiwgdmFsb3IuVG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgIC8vIENyZWFtb3MgdW5hIGluc3RhbmNpYSBkZSBgTnVldm9UaHJlYWRgIGUgaW5pY2lhbGl6YW1vcyBlbiA3IAogICAgICAgICAgICAvLyBlbCBjYW1wbyBgdmFsb3JgOgogICAgICAgICAgICBOdWV2b1RocmVhZCBudCA9IG5ldyBOdWV2b1RocmVhZCg3KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENyZWFtb3MgdW4gbnVldm8gYFRocmVhZGAgeSBwYXNhbW9zIGNvbW8gYXJndW1lbnRvIGFsIGNvbnN0cnVjdG9yIAogICAgICAgICAgICAvLyB1bmEgaW5zdGFuY2lhIGRlbCBkZWxlZ2FkbyBgVGhyZWFkU3RhcnRgLCBlbCBjdWFsIGVuY2Fwc3VsYSAKICAgICAgICAgICAgLy8gYWwgbcOpdG9kbyBkZSBpbnN0YW5jaWEgYE1ldG9kb1RocmVhZGA6CiAgICAgICAgICAgIFRocmVhZCB0aHJlYWQgPSBuZXcgVGhyZWFkKCBuZXcgVGhyZWFkU3RhcnQobnQuTWV0b2RvVGhyZWFkKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTZSBpbmljaWEgbGEgZWplY3VjacOzbiBkZWwgdGhyZWFkOgogICAgICAgICAgICB0aHJlYWQuU3RhcnQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCAiRWwgbcOpdG9kbyBgTWFpbmAgaGEgdGVybWluYWRvLiBQcmVzaW9uZSBFbnRlciBwYXJhIHRlcm1pbmFyLi4uIik7CiAgICAgICAgICAgIENvbnNvbGUuUmVhZExpbmUgKCk7CiAgICAgICAgfQogICAgfQp9