【问题标题】:Thread.Sleep to make WPF Splash Screen show longerThread.Sleep 使 WPF 启动画面显示时间更长
【发布时间】:2015-02-26 22:20:44
【问题描述】:
public MainWindow()
    {
        Thread.Sleep(4000); 
        InitializeComponent();   
    }

在我的主窗口中,我输入了Thread.Sleep 并将其设置为 4 秒以创建 4 秒延迟,然后我的应用程序才能运行其余代码。从本质上讲,我这样做是为了保证我的启动画面显示 4 秒,而不是仅仅显示应用程序加载的时间(目前还不到一秒)。我只是在鬼混时尝试过这个,所以我只是想知道这种方法是否有任何缺点。

我之所以这么问,是因为有很多问题都在询问人们如何让他们的启动画面显示时间更长。有什么特别的原因我不应该这样做,或者为什么其他人没有尝试过这个?

【问题讨论】:

  • 好吧,如果我没记错的话,你要休眠的线程是主线程。因此,通常,这将是启动屏幕正在运行的同一线程,因此它将无响应,甚至可能不会绘制。你真的试过了吗?
  • 试过了,效果很好。我是这样做的,而不是硬编码任何东西:msdn.microsoft.com/en-us/library/cc656886%28v=vs.110%29.aspx

标签: wpf visual-studio-2013 splash-screen


【解决方案1】:

需要考虑的一些事情:

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

一个更好的方法可能是使用计时器来关闭启动屏幕。

但是,斜线屏幕应该在您在初始加载期间执行某些工作时出现。如果您没有任何工作,可能在第 1 位显示启动画面是错误的想法?

【讨论】:

  • +1 表示根本不显示启动画面,但如果您需要它在特定时间间隔内显示,请使用计时器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多