Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - neidox

#1
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.

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

        }