Огромная задержка (от нескольких секунд до минуты) в CreateProcess () или ShellExecute () или system (), вызываемых из приложения - PullRequest
0 голосов
/ 27 июня 2019

У меня есть приложение с открытым исходным кодом, скажем, браузер, скажем, Firefox ESR 52.9.0, который я собрал из стабильной ветки. Это работает довольно хорошо. Но когда я пытаюсь продлить его функциональность и звонок скажем:

ShellExecute(0, 0, L"http://www.google.com", 0, 0 , SW_SHOW);

который должен открыть браузер по умолчанию - Google Chrome, iexplore, Opera, что угодно - задержка может занять от 2 секунд до минуты. То же самое касается ShellExecuteEx (), system (), даже CreateProcess (). Итак, я вижу отладку, что процесс успешно создан сразу в консоли, но на самом деле другое приложение (это может быть просто проводник) запускается с огромной задержкой, например, 20 секунд. Я читал о COM init, но

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);

не помогает. Я мог понять задержки в COM, но когда мы создаем новый процесс, и я сразу вижу отладку о создании процесса, но на самом деле процесс запускается через 20 секунд - я просто не могу поверить, что это возможно. Может быть, у кого-то есть объяснение этой магии? Это Windows7 x64.

...