Мы используем приложение командной строки (назовем его «AppWithLongDllLoadingTime.exe»). Это приложение вызывается из приложения C#:
var processStartInfo = new ProcessStartInfo
{
UseShellExecute = false,
CreateNoWindow = true,
FileName = "path\AppWithLongDllLoadingTime.exe"
Arguments = "-v -t xyz ..."
};
var process = new Process
{
StartInfo = processStartInfo
};
process.Start();
bool processExitWithoutTimeout = process.WaitForExit(30000);//wait 30 sec. for exit
«AppWithLongDllLoadingTime.exe» зависит приблизительно от 100 библиотек DLL. Поэтому инициализация процесса занимает около 3-5 секунд.
Итак, мой вопрос: «Есть ли способ предварительно загрузить библиотеки DLL перед выполнением?»
(я думал об использовании ILMerge , но я не уверен, дает ли это вообще какое-либо преимущество)
И кто-нибудь знает, почему второй раз вызывается "AppWithLongDllLoadingTime.exe" из того же все еще работающего C# приложения , быстрее?