スプラッシュ画面をすぐに表示する非常に小さな .exe を作成しました。その後、すべてを初期化します。
JIT コンパイラは、jit されているメソッドから呼び出されるモジュールをロードします。そのため、スプラッシュ スクリーンを表示するメソッドが、まだロードしたくないモジュールのメソッドを呼び出さないように注意する必要があります。
例:
internal sealed class Startup {
// Call Startup.Run() from Program.Main to start the application
internal void Run() {
this.ShowSplash();
this.ContinueStartup();
}
private void ShowSplash() {
_splash = new Splash();
_splash.Show();
Application.DoEvents();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private void ContinueStartup() {
// Do the startup here
}
}
[MethodImpl(MethodImplOptions.NoInlining)] が必要であるため、JIT によって ContinueStartup() メソッドがインライン化されません。これにより、モジュールのロードが早すぎるためです。