Pregunta

Estoy mostrando un formulario de inicio al iniciar un nuevo hilo inmediatamente antes de ejecutar mi forma principal.

En el método que se ejecuta por este hilo, estoy usando Application.Run como se muestra en la Opción 1 a continuación. ¿Es esta una forma correcta de hacer esto, o están a la espera allí problemas para mí becaue he llamado Application.Run dos veces? Una alternativa es la opción 2, también se muestra a continuación, donde llamo .ShowDialog () para mostrar el formulario.

El formulario de inicio sí se cierra después de un tiempo especificado, controlado dentro de la forma en sí, y ambas opciones parecen funcionar bien.

Así es mi pregunta: ¿Qué se prefiere - Opción 1 o la Opción 2? Si usted podría dar razones específicas para el uno o el otro, que sería grande.

Gracias.

De fragmentos de principal:

// Run splash screen thread.
Thread splash = new Thread(new ThreadStart(ShowSplash));
splash.Start();

// Run main application.
Application.Run(new MainForm());

Mostrar formulario de inicio la opción 1:

    static void ShowSplash()
    {
        Application.Run(new SplashForm());
    }

Mostrar formulario de inicio la opción 2:

    static void ShowSplash()
    {
        using (SplashForm splash = new SplashForm())
        {
            splash.ShowDialog();
        }
    }
¿Fue útil?

Solución

Otros consejos

Opción 2 probablemente se meten en problemas, porque entonces usted está utilizando la misma Mesageloop como el MainForm pero desde otro hilo.

La opción 1 es fina.

Me doy cuenta de que esto puede ser un punto de vista inusual, pero no han considerado el uso de una pantalla de bienvenida y en lugar de mostrar la información en la página de bienvenida "o 'ayuda> acerca de' pantalla en lugar?

Hay un puñado de razones para hacer esto:

  1. A menos que usted entra en multi-threading, una pantalla de bienvenida no se puede volver a pintar correctamente si alguna de alerta / MsgBox aparece en la parte superior de la misma, lo que anula el beneficio de la pantalla de bienvenida del todo.

  2. pantallas
  3. Splash que demuestran 'que tiene plugins x, y, z' instalada en realidad no se puede saber esto hasta que la información se ha cargado. En el momento en que esta información se carga, su aplicación está lista para ir, por lo que usted o bien cerrar la pantalla de bienvenida o que va a ser en la forma del usuario.

  4. Si miro de distancia y de menos la pantalla de bienvenida, Voy a perder toda la información que me está diciendo. Si 'licencia caduca en 3 días' es parte de esa información, y hoy en día es el viernes, eso significa que no voy a darse cuenta de que el lunes no puedo usar la aplicación. Oscuro, pero lo he visto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top