我有一个 WPF 数据库查看器应用程序:它是一个简单的主窗口,包含一个用户控件和一个数据网格,显示从 SQLite 数据库中提取的数据。
问题是这个应用程序需要 6 秒才能启动,直到它可用。
我尝试在主窗口的构造函数中构建用户控件(并进行所有数据加载):
初始屏幕将以这种方式显示 5 秒,然后是 1 秒的空主窗口,直到应用程序准备好使用。
用户说,事情(视觉上)发生需要很长时间。
然后我将用户控件创建(和数据加载)移到主窗口的 Loaded 事件处理程序中:启动屏幕将显示 3 秒,然后是 3 秒的空主窗口,直到应用程序准备好。
用户说它“更好”,但不喜欢半完成的主窗口长时间处于禁用状态的事实。
是否有一些关于感知应用程序加载时间的一般性建议,或者是否有任何其他关于如何改善这种情况的建议?
我相信理想情况下,主窗口会尽可能快地显示,以及一些沙漏或微调器,直到加载数据。但是我不能只是将用户控件的创建移到后台工作人员中,因为这将在错误的线程上完成。
有人对这个问题有什么建议吗?
编辑:
请注意,现在我刚刚分配了一个 LINQ-to-EF 查询作为网格数据源。
一种可能的改进可能是将此数据加载到后台的数据表中,并且仅在加载后分配它...
Edit2:我使用带有 System.Data.SQLite 和 EF4 的 .net 4 来加载数据。大约有 4000 行和 30 列。