Я действительно не уверен, как ваш установщик работает параллельно. NSIS выполняет команды последовательно. Если вы не станете слишком долго использовать команды, которые я никогда не видел, чтобы заставить NSIS работать параллельно, он ничего не выполняет параллельно. Можете ли вы опубликовать часть исходного кода вашего установщика, чтобы я мог видеть, как вы это делаете?
Вы можете использовать команду nsExec :: ExecToStack, чтобы запустить установку MySql и получить код возврата от установщика, например:
!include LogicLib.nsh
StrCpy $myReturnCode "0"
nsExec::ExecToStack "$TEMP\MySqlSetup.exe"
Pop $myReturnCode
${If} "$myReturnCode" == ""
${OrIf} "$myReturnCode" == "0"
// Presumably it worked, continue with installation
${Else}
// Error, don't continue with installation
${EndIf}
Обратите внимание, что nsExec :: ExecToStack будет ожидать возврата исполняемого файла перед выполнением следующей команды NSIS.