Prism 4 を WPFに使用し、Prism に付属するナビゲーション機能も使用します。
アプリケーションで特定のビューに移動 (読み込み) するときに、遅延に気付きます。これは、ビューとその依存関係をインスタンス化することから当然発生します。これには、ディスクからの必要なアセンブリの読み込みが含まれます。
スプラッシュ画面などを表示しながら、アプリケーションの起動時にこれらのビューをプリロードしたいと考えています。
誰かが似たようなことをしたことがあり、その経験を共有したいですか?
Prism 4 を WPFに使用し、Prism に付属するナビゲーション機能も使用します。
アプリケーションで特定のビューに移動 (読み込み) するときに、遅延に気付きます。これは、ビューとその依存関係をインスタンス化することから当然発生します。これには、ディスクからの必要なアセンブリの読み込みが含まれます。
スプラッシュ画面などを表示しながら、アプリケーションの起動時にこれらのビューをプリロードしたいと考えています。
誰かが似たようなことをしたことがあり、その経験を共有したいですか?
これを行うための「クリーンな」ソリューションはまだ見つかっていません。しかし、これが私たちがそれを解決した方法です。
ブートストラッパー関数 InitializeShell() で、プリロードするすべてのビューに移動します。最後に、ホームスクリーンに表示するすべてのビューに移動します。
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (MainShell) Shell;
// Preload views
// ---- Load (navigate to) all views here you want to have preloaded
// Load actual default views
// ---- Load (navigate to) the actual views for your "homescreen"
// Finished loading now show the shell
Application.Current.MainWindow.Show();
}
これは理想的な状況ではなく、多くのビューがある場合は多くのメンテナンス作業が必要になる可能性があります。これは私にとってはうまくいきますが、誰かがより良い解決策を持っているかどうかにも興味があります。
これが役立つかどうかはわかりませんが、次の手法を使用します。1)必要なすべてのアセンブリから参照をシェルに追加します。2)WPFツールキットのビジーインジケーターを使用します。