启动画面显示方法最佳实践C#

And*_*ndy 7 c# multithreading splash-screen winforms

我通过在运行主表单之前立即启动新线程来显示启动表单.

在这个线程运行的方法中,我正在使用Application.Run,​​如下面的选项1所示.这是一个正确的方法,或者是否有问题等我,因为我已经两次调用Application.Run?另一种选择是选项2,也在下面显示,我调用.ShowDialog()来显示表单.

启动表单本身在指定时间后关闭,在表单本身内控制,两个选项似乎都运行良好.

所以我的问题是:哪个更受欢迎 - 选项1还是选项2?如果你能给出一个或那个很好的具体原因.

谢谢.

主要片段:

// Run splash screen thread.
Thread splash = new Thread(new ThreadStart(ShowSplash));
splash.Start();

// Run main application.
Application.Run(new MainForm());
Run Code Online (Sandbox Code Playgroud)

显示启动表单选项1:

    static void ShowSplash()
    {
        Application.Run(new SplashForm());
    }
Run Code Online (Sandbox Code Playgroud)

显示启动表单选项2:

    static void ShowSplash()
    {
        using (SplashForm splash = new SplashForm())
        {
            splash.ShowDialog();
        }
    }
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 3

选项 2 可能会遇到麻烦,因为这样您将使用与 MainForm 相同的 Mesageloop,但来自另一个线程。

选项 1 很好。