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:
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.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); }
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 !!! ;)