.NET スプラッシュ画面の同期: 堅牢なソリューション
多くの .NET 開発者は、バックグラウンド タスクが完了する前にスプラッシュ スクリーンが途中で閉じるという共通の問題に遭遇します。 この記事では、信頼性の高いスプラッシュ スクリーン管理のための WindowsFormsApplicationBase
クラスを使用した優れた方法を紹介します。
このアプローチは、手動のスレッド同期と比較して、よりクリーンでより統合されたソリューションを提供します。
プロジェクトのセットアップ:
Microsoft.VisualBasic
への参照を追加します。スプラッシュ フォーム (frmSplash.cs):
スプラッシュ スクリーンとして機能するシンプルなフォーム (frmSplash) をデザインします。 このフォーム自体にはコードは必要ありません。
プログラム.cs:
Main
の Program.cs
メソッドを次のように変更します。
using Microsoft.VisualBasic.ApplicationServices; [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); new MyApp().Run(args); }
MyApp クラス (MyApp.cs):
MyApp
を継承して WindowsFormsApplicationBase
という名前の新しいクラスを作成します:
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(); } }
重要なのは OnCreateMainForm
メソッドです。 長いバックグラウンド プロセスはこのメソッド内で実行する必要があります。 これらの操作が終了した後のみ、メイン フォーム (Form1
) をインスタンス化してください。 MainForm
が作成されると、スプラッシュ画面は自動的に閉じます。
このメソッドはスプラッシュ スクリーンの表示と終了をエレガントに処理し、複雑な手動同期を必要とせずにスムーズなユーザー エクスペリエンスを保証します。 WindowsFormsApplicationBase
クラスは、このプロセスを効果的に管理するための組み込み機能を提供します。
以上が.NETで閉じる前に、スプラッシュ画面が背景スレッドを待つようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。