应用程序启动时,在显示第一个窗口之前的沙漏光标

时间:2015-07-13 07:43:39

标签: c# wpf startup

我们的应用程序入口点目前如下(在执行每个操作所需的计算时间方面也有描述),在App.xaml.cs中:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
       // 1) Lengthy config load, db reading, internal data structures creation

       // 2) [about 4 seconds later] create splashscreen (it needs some info from config before being shown)

       // 3) [1-2 more seconds here] display the main view

       // 4) base.OnStartup(e);
    }
}

问题在于,在您启动程序之后,需要3-4秒才能获得有关正在进行的操作的任何反馈:因此,在考虑重构我们的启动代码之前,我们考虑过更改应用程序启动后,鼠标光标(从箭头到沙漏)。这种方法的问题在于,Mouse.OverrideCursor等技术似乎只在您已经拥有WPF窗口时才有效,而我们的第一个窗口将在几秒钟后创建。除了全局更改游标(我们已经测试但需要P / Invoke和乱用注册表,而不是你想在这个场景中做什么)还有其他方法可以快速解决问题吗? / p>

建议的重复肖像正确我的场景,但最终没有提供有效的答案。正如你所看到的那样,这个主题的最佳答案是由凯文·迪特拉利亚(Kevin DiTraglia)编写的,它提出了我已经反复试过的同样的事情,但无济于事。

1 个答案:

答案 0 :(得分:1)

考虑在可能的情况下异步更改所有同步启动方法调用。