私は WPF データベース ビューアー アプリケーションを持っています。これは、SQLite データベースから抽出されたデータを表示するデータ グリッドを備えたユーザー コントロールを含む単純なメイン ウィンドウです。
問題は、このアプリケーションが使用可能になるまで、起動に 6 秒かかることです。
メイン ウィンドウのコンストラクターでユーザー コントロールを作成 (およびすべてのデータの読み込み) を試みました
。スプラッシュ スクリーンはこのように 5 秒間表示され、その後、アプリケーションを使用する準備が整うまで、空のメイン ウィンドウが 1 秒間表示されます。
ユーザーは、何かが (視覚的に) 起こるまでに時間がかかりすぎると言っています。
次に、ユーザー コントロールの作成 (およびデータの読み込み) をメイン ウィンドウの Loaded イベント ハンドラーに移動しました。スプラッシュ スクリーンが 3 秒間表示され、その後、アプリケーションの準備が整うまで 3 秒間空のメイン ウィンドウが表示されます。
ユーザーはそれが「より良い」と述べましたが、半分完成したメインウィンドウが長い間無効な状態で表示されるという事実が好きではありません.
認識されたアプリケーションの読み込み時間に関する一般的なアドバイスはありますか、またはこの状況を改善する方法について他の推奨事項はありますか?
理想的には、データが読み込まれるまで、砂時計またはスピナーとともに、メイン ウィンドウができるだけ速く表示されると思います。しかし、これは間違ったスレッドで行われるため、ユーザー コントロールの作成をバックグラウンド ワーカーに移動することはできません。
この問題に対する提案はありますか?
編集:
現時点では、グリッド データ ソースとして LINQ-to-EF クエリを割り当てただけであることに注意してください。
考えられる改善の 1 つは、このデータをバックグラウンドでデータ テーブルに読み込み、読み込まれたときにのみ割り当てることです...
Edit2: System.Data.SQLite および EF4 で .net 4 を使用してデータをロードしています。およそ 4000 行と 30 列があります。