C# tem um recurso interresante que é o evento fiz umas classes de exemplo:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace Events
{
class EventosFiguras:EventArgs
{
public EventosFiguras(string tipo)
{
this.Tipo = tipo;
}
private string _tipo;
public string Tipo
{
get { return _tipo; }
set { _tipo = value; }
}
}
class DadosFiguras
{
public delegate void figurasHandler(object sender, EventosFiguras e);
public event figurasHandler callFuguras;
int cont = 0;
public void subscriber()
{
callFuguras += new DadosFiguras.figurasHandler(mostraDados);
}
public void mostraDados(object sender, EventosFiguras e)
{
Console.WriteLine("Criando figura " + e.Tipo);
}
public void exibeFiguras()
{
while(true)
{
Thread.Sleep(100);
if (cont % 3 == 0)
{
EventosFiguras e = new EventosFiguras("Quadrado");
callFuguras(this, e);
}
else if (cont % 3 == 1)
{
EventosFiguras e = new EventosFiguras("Retângulo");
callFuguras(this, e);
}
else if (cont % 3 == 2)
{
EventosFiguras e = new EventosFiguras("Losangulo");
callFuguras(this, e);
}
cont++;
}
}
}
public class ChamaEvento
{
public static void Main(string[] args)
{
DadosFiguras obj = new DadosFiguras();
obj.subscriber();
obj.exibeFiguras();
}
}
}
Mesmo sabendo usar eu não sei em quais situações eu devo aplicar o evento, alguém que já trabalho com evento pode me explicar …?