После этого ответа
Предварительная загрузка всех сборок (JIT)
хороший способ предварительно загрузить все сборки приложения. может быть
Private Sub PreLoadJit()
For Each type In Assembly.GetExecutingAssembly.GetTypes
For Each method In type.GetMethods((BindingFlags.DeclaredOnly _
Or (BindingFlags.NonPublic _
Or (BindingFlags.Public _
Or (BindingFlags.Instance Or BindingFlags.Static)))))
If (((method.Attributes And MethodAttributes.Abstract) _
= MethodAttributes.Abstract) _
OrElse method.ContainsGenericParameters) Then
continue For
End If
System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(method.MethodHandle)
Next
Next
End Sub
а когда запустить метод?
Я думаю, что может быть первым методом в методе MyBase.Load, но я не знаю, прав ли я.
И после этой старой статьи
https://www.codeproject.com/Articles/31316/Pre-compile-pre-JIT-your-assembly-on-the-fly-or-tr
Автор использует поток для запуска метода.
Как насчет сборки pre-jit при запуске как метода, вызываемого в mainthread, или запуска его в отдельном потоке?