Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/02/2007, 12:31
Avatar de davidel
davidel
 
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Gurús (Ayuda prog. asincrónica C# 2.0)

Perdona, se me olvidó pegarte algo de código, aqui lo tienes completo en base a lo que tu mandaste

public delegate void LlenarLista();
public delegate void AddListItemCallback(string text);
private AddListItemCallback addListItemCallback;

LlenarLista delegado;
private void button1_Click(object sender, System.EventArgs e)
{
delegado = new LlenarLista(LlenarElementosLista);
addListItemCallback = new AddListItemCallback(this.AddListItem);
IAsyncResult iaResultado = delegado.BeginInvoke(new AsyncCallback(ResultadoOperacion), null);
}

[System.Runtime.Remoting.Messaging.OneWay]
private void LlenarElementosLista()
{
lsLista.Items.Clear();
for (Int64 i = 0; i < 5; i++)
{
if(this.InvokeRequired)
{
lsLista.Invoke(addListItemCallback, new object[] {"Elemento " + i.ToString()});
}
else
{
lsLista.Items.Add("Elemento " + i.ToString());
}
}
}

private void AddListItem(string text)
{
this.lsLista.Items.Add(text);
}

private void ResultadoOperacion(IAsyncResult ar)
{
delegado.EndInvoke(ar);
}