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:
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>
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>
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!