
05/02/2007, 12:31
|
 | | | 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);
} |