Foros del Web » Programación para mayores de 30 ;) » .NET »

C# 2.0 - Llenar ListBox con Hebra "LEGALMENTE"

Estas en el tema de C# 2.0 - Llenar ListBox con Hebra "LEGALMENTE" en el foro de .NET en Foros del Web. Buenas gente... Hace un par de días puse un post en .NET sobre si era o no optimo cargar un listbox mediatne una hebra. Ahora ...
  #1 (permalink)  
Antiguo 02/02/2007, 05:42
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
C# 2.0 - Llenar ListBox con Hebra "LEGALMENTE"

Buenas gente...

Hace un par de días puse un post en .NET sobre si era o no optimo cargar un listbox mediatne una hebra. Ahora tengo toda la convicción de que no es lo más optimo.

He estado intentando cargar un ListBox de 100000 Items (Con un bucle claro) de forma asincrónica, para que no me saltase la excecpción del "CheckForIllegalCrossThreadCalls".

Bueno, este es el código que estoy intentando realizar (Aun que lógicamente sin éxito, por eso estoy aqui):
Código:
        public delegate void LlenarLista();
        LlenarLista delegado;
        private void button2_Click(object sender, EventArgs e)
        {
            delegado = new LlenarLista(LlenarElementosLista);
            IAsyncResult iaResultado = delegado.BeginInvoke(new AsyncCallback(ResultadoOperacion), null);
        }
        private void LlenarElementosLista()
        {
            for(int i=0; i<100000; i++)
                lsLista.Items.Add("Elemento " + i.ToString());
        }
        private void ResultadoOperacion(IAsyncResult ar)
        {
            delegado.EndInvoke(ar);
        }
Me sigue dando el mismo error, pero si pongo el maldito CheckForIllegalCrossThreadCalls a True me vuelve a funcionar... pero no quiero usar eso, y estoy casi seguro que tiene que poderse hacer.

Bueno, creo que este es un tema interesante para todo programador de aplicaciones windows. Asi que algún desarrollador experimentado saber cual es la solución, le agradecería mucho su colaboración, ya que estoy desesperado por cargar esto mediante Hilos pero "legalmente".

En fin, saludos y buen día foreros !!! ;)
__________________
Charlie.

Última edición por chcma; 02/02/2007 a las 05:53
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.