Mencegah Penutupan Skrin Percikan Pramatang dalam .NET
Artikel ini menangani masalah biasa penutupan skrin percikan sebelum pemprosesan benang latar belakang selesai. Kami akan memanfaatkan keupayaan pengurusan skrin percikan terbina dalam rangka kerja .NET untuk penyelesaian yang mantap.
Menggunakan Pangkalan Aplikasi Borang Windows
Pendekatan ini menggunakan kelas WindowsFormsApplicationBase
untuk mengurus kitaran hayat skrin percikan dengan elegan.
Persediaan Projek: Mulakan dengan Aplikasi Borang Windows baharu (.NET Framework 4 atau lebih baru). Tambahkan rujukan pada Microsoft.VisualBasic.ApplicationServices
.
Borang Skrin Percikan: Cipta borang (frmSplash
) untuk dijadikan sebagai skrin percikan anda.
Pengubahsuaian Program.cs: Dalam Program.cs
, cipta kelas (MyApp
) yang diwarisi daripada WindowsFormsApplicationBase
.
Kaedah Override: Override kaedah OnCreateSplashScreen
dan OnCreateMainForm
:
OnCreateSplashScreen
: Menghidupkan dan menetapkan frmSplash
anda sebagai skrin percikan.OnCreateMainForm
: Di sinilah kerja latar belakang yang penting berlaku. Lakukan operasi anda yang memakan masa di sini. Hanya selepas operasi ini selesai barulah anda membuat dan menetapkan borang utama anda (Form1
). Ini menutup skrin percikan secara automatik.Contoh Kod (Program.cs):
<code class="language-csharp">using System; using System.Windows.Forms; using Microsoft.VisualBasic.ApplicationServices; namespace MyApplication { static class Program { [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); new MyApp().Run(args); } } class MyApp : WindowsFormsApplicationBase { protected override void OnCreateSplashScreen() { this.SplashScreen = new frmSplash(); } protected override void OnCreateMainForm() { // Perform time-consuming tasks here... // Example: Simulate work with a delay System.Threading.Thread.Sleep(3000); // Create the main form AFTER the tasks are complete this.MainForm = new Form1(); } } }</code>
Pendekatan yang disemak ini memastikan skrin percikan kekal kelihatan sehingga semua proses latar belakang selesai, memberikan pengalaman pengguna yang lebih baik. Ingat untuk menggantikan System.Threading.Thread.Sleep(3000);
dengan operasi urutan latar belakang anda yang sebenar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Skrin Percikan daripada Ditutup Sebelum Benang Latar Belakang Selesai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!