Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/02/2007, 03:46
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 8 meses
Puntos: 7
Re: Gurús (Ayuda prog. asincrónica C# 2.0)

Bueno gente... no podía aguantarme más y lo probé...

Por desgracia, siento comunicaros que el error persiste, además de que deshabilitando el CheckForIllegalCrossThreadCalls también falla. Por ahora lo tengo a true, e intenté ejecutar el siguiente código:

Código:
        public delegate void LlenarLista();
        LlenarLista delegado;

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

        [OneWay]
        private void LlenarElementosLista()
        {
            lsLista.Items.Clear();
            for (Int64 i = 0; i < 3; 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);
        }
Despues también intentaré pelearme para que no sea necesario el CheckForIllegalCrossThreadCalls, haber si conseguimos uasr controles de forma background y "Legalmente".

Un abrazo foreros.
__________________
Charlie.