Сообщение Как программно загрузить *.resource.dll из GAS? от 13.09.2024 15:29
Изменено 13.09.2024 15:29 mDmitriy
Как прогрмаммно загрузить *.resource.dll из GAS?
Всем привет!
Есть проект .Net Framework 4.8, WinForm
Как известно, при первой загрузке форма загружается дольше чем при всех последующих вызовах, что связано в подгрузкой разных ресурсов в кеш.
Когда разница во времени между первым вызовом и последующими становится дискомфортной, появляется задача первый вызов ускорить.
Самый простой способ — загрузить требуемые формой dll в фоновом потоке при старте программы.
Для обычных dll это просто, а вот как загрузить ресурсную dll?
В моем случае форма при первом вызове загружает "System.ServiceModel.resource.dll" (идет вызов WCF), что вызывает заметное глазу торможение.
Где конкретно происходит ее вызов и кто ее вызывает — установить не удалось (видимо таки из System.ServiceModel.dll, но это не точно).
Я знаю, что можно загрузить dll классическим методом:
Ро где взять AssemblyName (System.ServiceModel.resources, Version=4.0.0.0, Culture=ru, PublicKeyToken=b77a5c561934e089)?
Законопачивать эту строчку в код не хочется, потом не оберешься проблем.
Любые идеи приветствуются
PS. Предварительный вызов пустого метода WCF в том же фоновом потоке, наверно, решит проблему (хотя и только для этой dll), но уж слишком извратно
Есть проект .Net Framework 4.8, WinForm
Как известно, при первой загрузке форма загружается дольше чем при всех последующих вызовах, что связано в подгрузкой разных ресурсов в кеш.
Когда разница во времени между первым вызовом и последующими становится дискомфортной, появляется задача первый вызов ускорить.
Самый простой способ — загрузить требуемые формой dll в фоновом потоке при старте программы.
Для обычных dll это просто, а вот как загрузить ресурсную dll?
В моем случае форма при первом вызове загружает "System.ServiceModel.resource.dll" (идет вызов WCF), что вызывает заметное глазу торможение.
Где конкретно происходит ее вызов и кто ее вызывает — установить не удалось (видимо таки из System.ServiceModel.dll, но это не точно).
Я знаю, что можно загрузить dll классическим методом:
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef)
Ро где взять AssemblyName (System.ServiceModel.resources, Version=4.0.0.0, Culture=ru, PublicKeyToken=b77a5c561934e089)?
Законопачивать эту строчку в код не хочется, потом не оберешься проблем.
Любые идеи приветствуются
PS. Предварительный вызов пустого метода WCF в том же фоновом потоке, наверно, решит проблему (хотя и только для этой dll), но уж слишком извратно
Как программно загрузить *.resource.dll из GAS?
Всем привет!
Есть проект .Net Framework 4.8, WinForm
Как известно, при первой загрузке форма загружается дольше чем при всех последующих вызовах, что связано в подгрузкой разных ресурсов в кеш.
Когда разница во времени между первым вызовом и последующими становится дискомфортной, появляется задача первый вызов ускорить.
Самый простой способ — загрузить требуемые формой dll в фоновом потоке при старте программы.
Для обычных dll это просто, а вот как загрузить ресурсную dll?
В моем случае форма при первом вызове загружает "System.ServiceModel.resource.dll" (идет вызов WCF), что вызывает заметное глазу торможение.
Где конкретно происходит ее вызов и кто ее вызывает — установить не удалось (видимо таки из System.ServiceModel.dll, но это не точно).
Я знаю, что можно загрузить dll классическим методом:
Ро где взять AssemblyName (System.ServiceModel.resources, Version=4.0.0.0, Culture=ru, PublicKeyToken=b77a5c561934e089)?
Законопачивать эту строчку в код не хочется, потом не оберешься проблем.
Любые идеи приветствуются
PS. Предварительный вызов пустого метода WCF в том же фоновом потоке, наверно, решит проблему (хотя и только для этой dll), но уж слишком извратно
Есть проект .Net Framework 4.8, WinForm
Как известно, при первой загрузке форма загружается дольше чем при всех последующих вызовах, что связано в подгрузкой разных ресурсов в кеш.
Когда разница во времени между первым вызовом и последующими становится дискомфортной, появляется задача первый вызов ускорить.
Самый простой способ — загрузить требуемые формой dll в фоновом потоке при старте программы.
Для обычных dll это просто, а вот как загрузить ресурсную dll?
В моем случае форма при первом вызове загружает "System.ServiceModel.resource.dll" (идет вызов WCF), что вызывает заметное глазу торможение.
Где конкретно происходит ее вызов и кто ее вызывает — установить не удалось (видимо таки из System.ServiceModel.dll, но это не точно).
Я знаю, что можно загрузить dll классическим методом:
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef)
Ро где взять AssemblyName (System.ServiceModel.resources, Version=4.0.0.0, Culture=ru, PublicKeyToken=b77a5c561934e089)?
Законопачивать эту строчку в код не хочется, потом не оберешься проблем.
Любые идеи приветствуются
PS. Предварительный вызов пустого метода WCF в том же фоновом потоке, наверно, решит проблему (хотя и только для этой dll), но уж слишком извратно