Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menghalang Skrin Percikan daripada Ditutup Sebelum Benang Latar Belakang Selesai?

Bagaimanakah Saya Boleh Menghalang Skrin Percikan daripada Ditutup Sebelum Benang Latar Belakang Selesai?

Patricia Arquette
Lepaskan: 2025-01-25 08:31:08
asal
324 orang telah melayarinya

How Can I Prevent a Splash Screen from Closing Before a Background Thread Finishes?

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.

  1. Persediaan Projek: Mulakan dengan Aplikasi Borang Windows baharu (.NET Framework 4 atau lebih baru). Tambahkan rujukan pada Microsoft.VisualBasic.ApplicationServices.

  2. Borang Skrin Percikan: Cipta borang (frmSplash) untuk dijadikan sebagai skrin percikan anda.

  3. Pengubahsuaian Program.cs: Dalam Program.cs, cipta kelas (MyApp) yang diwarisi daripada WindowsFormsApplicationBase.

  4. 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.
  5. 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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan