Memastikan Keterlihatan Skrin Percikan Sehingga Thread Latar Belakang Selesai
Artikel ini menangani cabaran untuk mengekalkan skrin percikan dipaparkan sehingga utas latar belakang selesai memprosesnya. Penyelesaiannya menggunakan kelas BackgroundWorker
untuk pengurusan benang yang cekap.
Dalam SplashScreen
kaedah GetFromServer()
kelas:
Segera BackgroundWorker
:
<code class="language-csharp">private BackgroundWorker worker = new BackgroundWorker();</code>
Tugaskan DoWork
Pengendali Acara:
<code class="language-csharp">worker.DoWork += new DoWorkEventHandler(worker_DoWork);</code>
Tugas yang Memakan Masa Nyahmuat: Pindahkan operasi yang panjang daripada GetFromServer()
kepada worker_DoWork
pengendali acara:
<code class="language-csharp">private void worker_DoWork(object sender, DoWorkEventArgs e) { // Perform time-consuming operations here // ... _serverFiles = "added"; // Example: Set a flag indicating completion }</code>
Mulakan Pekerja Latar Belakang pada Hide
: Mulakan pekerja latar belakang apabila skrin percikan hendak disembunyikan:
<code class="language-csharp">private void SplashScreen_Hide(object sender, EventArgs e) { worker.RunWorkerAsync(); }</code>
Sembunyikan Skrin Percikan apabila Selesai: Sembunyikan skrin percikan sebaik sahaja pekerja latar belakang menyelesaikan kerjanya:
<code class="language-csharp">private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { this.Hide(); }</code>
Kaedah ini menjamin keterlihatan skrin percikan sehingga tugas utas latar belakang selesai, memberikan pengalaman pengguna yang lancar. Keupayaan yang wujud dalam kelas BackgroundWorker
memudahkan pengurusan rangkaian dan memastikan peralihan yang bersih kepada borang permohonan utama.
Atas ialah kandungan terperinci Bagaimana untuk menyimpan skrin percikan sehingga benang latar belakang selesai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!