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