Thread.Sleep 使 WPF 初始屏幕显示时间更长

Thread.Sleep to make WPF Splash Screen show longer

public MainWindow()
    {
        Thread.Sleep(4000); 
        InitializeComponent();   
    }

在我的主 window 中,我放入 Thread.Sleep 并将其设置为 4 秒,以便在我的应用程序可以 运行 其余代码之前创建 4 秒的延迟。本质上,我这样做是为了保证我的启动画面显示 4 秒,而不是应用程序加载的时间(到目前为止还不到一秒)。我只是在闲逛时尝试这样做,所以我只是想知道这种方法是否有任何缺点。

我问是因为有很多问题询问人们如何让他们的初始屏幕显示时间更长。有什么特别的原因我不应该这样做或者为什么其他人没有尝试过吗?

一些需要思考的事情:

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

执行此操作的更好方法可能是使用计时器来关闭初始屏幕。

但是,当您在初始加载期间做一些工作时,会出现斜线屏幕。如果您没有任何工作,也许在第一个位置显示启动画面是错误的想法?