Thread.Sleep使WPF启动画面显示更长时间

Jim*_*myK 0 wpf splash-screen visual-studio-2013

public MainWindow()
    {
        Thread.Sleep(4000); 
        InitializeComponent();   
    }
Run Code Online (Sandbox Code Playgroud)

在我的主窗口中,我将Thread.Sleep其设置为4秒钟以创建4秒延迟,然后我的应用程序可以运行其余代码.从本质上讲,我这样做是为了让我的Splash Screen保证显示4秒,而不是应用程序花费多长时间(到目前为止不到一秒).我只是在愚弄时试图这样做,所以我只是想知道这种方法是否有任何缺点.

我问,因为有很多问题要求人们如何让他们的Splash Screens显示更长时间.是否有一个特殊的原因我不应该这样做或为什么其他人没有尝试过这个?

Ian*_*Ian 5

有些事情要考虑:

  • 如果您睡眠主GUI线程,您可能会导致启动画面停止重新绘制,如果有什么东西在它上面移动.
  • 如果主线程忙于线程休眠,Windows可能会报告您的应用程序无响应.
  • 如果你正在做任何额外的工作,你不需要work-time + 4s.

更好的方法是使用计时器来关闭启动画面.

但是,当您在初始加载期间进行一些工作时,斜杠屏幕会出现.如果你没有任何工作,可能在第一名显示闪屏是错误的想法?