• Martes 12 de Mayo de 2026, 05:44

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - carlos_087

Páginas: [1]
1
C# / Pantalla carga (hilos)C#
« en: Martes 19 de Enero de 2010, 14:25 »
Hola a todos! Estoy programando en C# una aplicación basada en ventanas, y tengo el siguiente problema.

Mi proceso principal, al pulsar cierto botón en el interfaz gráfico, debe leer unos datos de una base de datos (operación que tarda unos segundos). Para evitar que no se quede la ventana como "colgada" mientras realiza la operación he pensado en crear un hilo que me muestre una nueva ventana diciendo "Cargando, espere".

Hasta aquí todo bien, excepto por un pequeño detalle: algunas veces, cuando aborto el hilo que me crea la pantalla de espera, ignora esta señal de aborto y la ventana permanece en la pantalla como si nada.

Os dejo el código a ver si podeis saber que hago mal, o que otra solución podríais aportar.

Saludos.
Citar
private void.... --> A este método se le llama cuando se pulsa el botón para cargar los datos correspondientes
            this.Window.Hide();
            this.aux = new Thread(new ThreadStart(creaPantallaEspera));
            this.aux.Name = "Esperando...";
            this.aux.ApartmentState = ApartmentState.STA;
            this.aux.Start();

         PantallaRanking ranking = new PantallaRanking(this.Window); ---> Se cargan los datos de la base de datos
            this.aux.Abort(); --> Aborto el hilo

           
            ranking.Show();

El método que ejecuta el hilo (creaPantallaEspera)
private void creaPantallaEspera()
        {
            PantallaEspera espera = new PantallaEspera();--> Ventana que muestra "Cargando"
            espera.Show();
            this.aux.Join(); -->Hago que se espere a sí mismo para que no desaparezca la ventana espera

        }

Páginas: [1]