我们的应用程序入口点目前如下(在执行每个操作所需的计算时间方面也有描述),在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)编写的,它提出了我已经反复试过的同样的事情,但无济于事。
答案 0 :(得分:1)
考虑在可能的情况下异步更改所有同步启动方法调用。