Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 制作winforms 2.0启动屏幕_C#_Winforms - Fatal编程技术网

C# 制作winforms 2.0启动屏幕

C# 制作winforms 2.0启动屏幕,c#,winforms,C#,Winforms,在C#/.NET2.0WinForms应用程序中启动启动屏幕(自动消失)的最简单方法是什么?看起来VisualBasic程序集(可以从C#调用)有办法做到这一点,但是有简单的例子吗 感谢您,有一个详细的教程,它将启动屏幕放在自己的线程上,这样主应用程序就可以继续加载了。最简单的方法是创建一个表单,并允许它在显示一段时间后自行关闭。但是,如果您希望此表单能够在应用程序初始化时显示一些应用程序加载进度,并在应用程序真正准备就绪可供使用后消失(例如3秒钟),则情况会变得更加复杂 这个想法包括将启动屏幕

在C#/.NET2.0WinForms应用程序中启动启动屏幕(自动消失)的最简单方法是什么?看起来VisualBasic程序集(可以从C#调用)有办法做到这一点,但是有简单的例子吗


感谢您,有一个详细的教程,它将启动屏幕放在自己的线程上,这样主应用程序就可以继续加载了。

最简单的方法是创建一个表单,并允许它在显示一段时间后自行关闭。但是,如果您希望此表单能够在应用程序初始化时显示一些应用程序加载进度,并在应用程序真正准备就绪可供使用后消失(例如3秒钟),则情况会变得更加复杂

这个想法包括将启动屏幕放在与主应用程序完全不同的线程上。它的线程函数应该是这样的:

    static void ThreadFunc()
    {
        _splash = new Splash();
        _splash.Show();
        while (!_shouldClose)
        {
            Application.DoEvents();
            Thread.Sleep(100);
            if (new Random().Next(1000) < 10)
            {
                _splash.Invoke(new MethodInvoker(_splash.RandomizeText));
            }
        }
        for (int n = 0; n < 18; n++)
        {
            Application.DoEvents();
            Thread.Sleep(60);
        }
        if (_splash != null)
        {
            _splash.Close();
            _splash = null;
        }
    }
可能重复的
    static public void ShowSplash()
    {
        _shouldClose = false;
        Thread t = new Thread(ThreadFunc);
        t.Priority = ThreadPriority.Lowest;
        t.Start();
    }
    internal static void RemoveSplash()
    {
        _shouldClose = true;
    }