Dado el número de elementos para el listview, no te sería más útil el datagridview?
Hola,
Tienes que usar una combinación de técnicas para obtener una rapidez de carga óptima. La primera es utilizar el par de métodos BeginUpdate() y EndUpdate(). Cuando llamas a BeginUpdate, deshabilitas la actualización del ListView, de manera que añadir nuevos ListViewItem no fuerza el redibujado del grid. Esto sólo ya hace que la carga sea mucho más rápida.
Sin embargo, si quieres mostrar una barra de progreso, tendrás que utilizar un hilo ejecutándose en segundo plano. Pero teniendo en cuenta que ese hilo no podrá modificar la interfaz de usuario, tendrás que hacer llamadas entre hilos. Para ello, tienes que utilizar el método Invoke del ListView, que hará que se ejecute un método en el hilo de la interfaz de usuario.
Los pasos a realizar son los siguientes:
Thread hiloDeCarga = new Thread(new ThreadStart(miObjetoDeCarga.MetodoPublicoDeCarga));hiloDeCarga.Start();
Espero que esto te oriente y puedas resolver la situación. Un saludo,
Augusto.