Maison > développement back-end > C++ > Comment puis-je m'assurer que mon écran de démarrage attend un fil de discussion en arrière-plan avant de se fermer dans .NET ?

Comment puis-je m'assurer que mon écran de démarrage attend un fil de discussion en arrière-plan avant de se fermer dans .NET ?

Susan Sarandon
Libérer: 2025-01-25 08:36:09
original
757 Les gens l'ont consulté

How Can I Ensure My Splash Screen Waits for a Background Thread Before Closing in .NET?

Synchronisation de l'écran d'éclaboussures .NET: une solution robuste

De nombreux développeurs .NET rencontrent un problème commun: l'écran Splash se ferme prématurément avant la fin des tâches d'arrière-plan. Cet article présente une méthode supérieure à l'aide de la classe WindowsFormsApplicationBase pour la gestion fiable de l'écran d'éclaboussures.

Cette approche offre une solution plus propre et plus intégrée par rapport à la synchronisation manuelle du thread.

Configuration du projet:

  1. Créer un nouveau projet d'application Windows Forms dans Visual Studio.
  2. Ajoutez une référence à Microsoft.VisualBasic.

Forme d'éclaboussure (FRMSPLASH.CS):

Concevez une forme simple (FRMSPLASH) pour servir d'écran de splash. Aucun code n'est nécessaire dans ce formulaire lui-même.

programme.cs:

Modifiez la méthode Main dans Program.cs comme suit:

<code class="language-csharp">using Microsoft.VisualBasic.ApplicationServices;

[STAThread]
static void Main(string[] args)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    new MyApp().Run(args);
}</code>
Copier après la connexion

Classe MyApp (myapp.cs):

Créez une nouvelle classe nommée MyApp héritée de WindowsFormsApplicationBase:

<code class="language-csharp">class MyApp : WindowsFormsApplicationBase
{
    protected override void OnCreateSplashScreen()
    {
        this.SplashScreen = new frmSplash();
    }

    protected override void OnCreateMainForm()
    {
        // Perform time-consuming operations here...
        // Example:  Simulate a long process
        System.Threading.Thread.Sleep(3000); 

        // Create the main form after background tasks are complete
        this.MainForm = new Form1();
    }
}</code>
Copier après la connexion

La clé est la méthode OnCreateMainForm. Vos longs processus d'arrière-plan doivent s'exécuter dans cette méthode. Uniquement après ces opérations sont terminées si vous instanciez votre formulaire principal (Form1). L'écran Splash se fermera automatiquement une fois MainForm créé.

Cette méthode gère élégamment l'affichage et la fermeture de l'écran d'éclaboussure, garantissant une expérience utilisateur fluide sans avoir besoin d'une synchronisation manuelle complexe. La classe WindowsFormsApplicationBase fournit des fonctionnalités intégrées pour gérer efficacement ce processus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal