using System;
using System.Threading;
// Este es el delegado que se encargará de hacer la magia
public delegate void MensajeDelegate(string msj);
class ClasePrincipal
{
static void Main(string[] args)
{
Console.WriteLine("Iniciando void Main().");
// Creamos una instancia de la clase multi hilo y seteamos los campos que normalmente pasariamos como parametros
ClaseMultiHilo cmh = new ClaseMultiHilo();
// Agregamos el handler del evento (si no lo hacemos no podremos interceptarlo)
cmh.Mensaje += new MensajeDelegate(MuestraMensaje);
// Creamos un delegado para el método ImprimirSuma()
ThreadStart ts = new ThreadStart(cmh.MostrarMensaje);
// Creamos un hilo para ejecutar el delegado...
Thread t = new Thread(ts);
t.Start();
t.Join();
Console.WriteLine("Fin de la ejecución. Presione una tecla para salir.");
Console.ReadLine();
}
public static void MuestraMensaje(string msj)
{
Console.WriteLine(msj);
}
}
class ClaseMultiHilo
{
public event MensajeDelegate Mensaje;
public void MostrarMensaje()
{
// Lanzamos el evento con la informacion necesaria
Mensaje("Hola colega");
}
}