Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2014, 10:41   #1
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Вопрос CreateProcess

Есть два моих приложения, основное и дочернее.

Дочернее запускается из потока, используя CreateProcess, при этом передается десятка полтора параметров запуска.
Приложение представляет сабой "сапожника без сапог" - т.е. VCL Forms Application без форм.
Модуль Forms добавлен, вызывается только Application.Title. Автоматически создаваемых форм нет.

При запуске дочернего процесса, курсор на момент "задумывается", хотя по задумке этого быть не должно - как в Google Chrome например, - ничего нигде не задумывается.

В чем может быть дело?
STRELOK-2007 вне форума Ответить с цитированием
Старый 01.08.2014, 10:50   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

CreateProcess возвращается только после того как приложение начало выполнять код.
то есть после всей инициализации.

хром асинхронен до нельзя.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.08.2014, 11:38   #3
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
CreateProcess возвращается только после того как приложение начало выполнять код.
то есть после всей инициализации.

хром асинхронен до нельзя.
Я же специально сказал, CreateProcess вызывается в отдельном потоке. Пусть хоть на 200 лет зависнет, запуская процесс, основной то VCL - не занят.

Можно ли как то определить, какой именно процесс заставил "задуматься" курсор? Чтобы от этого плясать уже, я допускаю что может непосредственно дочерний процесс этого делать.
STRELOK-2007 вне форума Ответить с цитированием
Старый 01.08.2014, 11:53   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Можно ли как то определить, какой именно процесс заставил "задуматься" курсор?
Процесс System. Наслаждайся
Курсор вообще никому не принадлежит.
Человек_Борща вне форума Ответить с цитированием
Старый 01.08.2014, 12:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно ли как то определить, какой именно процесс заставил "задуматься" курсор?
Врядли... Это и антивирь может и само приложение протупливать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2014, 20:49   #6
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Кстати...

Если специально заострить внимание, то хром тоже на самом деле "мигает" курсором, но делает это субъективно 50-100мс = видимо именно столько времени запускаетя новый процесс.

Хорошо.
Только вот, как подобным образом сделать и у меня? Я даже пробовал сделать пустое приложение - создается поток и WaitForSingleObject; пробовал создавать вечный цикл с слипом на 2, 50 и 100 мс - один фиг. Пробовал дебаговую конфигурацию менять на релизную - все равно.

Мб это проделки Delphi и его рантайма? Что быстрее оно физически не стартанет.

Хотя стоит ли заморачиваться?
Допустим приложение стоит в автозапуске. Допустим добавлено 100 устройств. Соответственно, программа должна включиться сама и запустить 100 процессов для каждого устройства и спокойно мониторить.
Запуститься все это не мгновенно, и постоянно курсор будет "мигать".
STRELOK-2007 вне форума Ответить с цитированием
Старый 04.08.2014, 10:44   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

что за 100 процессов? вы чего? система не резиновая.

далее, зависит от того что за приложение. далее вы под отладчиком делали это?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.08.2014, 10:48   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Читать до полного понимания:
Цитата:
Процесс System.
Курсор вообще никому не принадлежит.
процесс может им управлять, пока курсор находится в области контекста приложения(в окне программы, к примеру). что касаетсяего рекции на запуск ПО, этим полностью управляет система.

Процессы у хрома грузятся быстро, потому что хром выполняет предзагрузку и кеширование возможных страниц и данных(как и любой вменяемый веб-браузер), на которые пользователь можете перейти. Новому процессу хрома абсолютно не надо ничего делать, все ресурсы ему уже подготовлены, он просто берет их в оборот.

Брать готовое же быстрее, чем готовить самому и только потом взять готовое?

Последний раз редактировалось Человек_Борща; 04.08.2014 в 10:57.
Человек_Борща вне форума Ответить с цитированием
Старый 05.08.2014, 08:19   #9
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Читать до полного понимания:

процесс может им управлять, пока курсор находится в области контекста приложения(в окне программы, к примеру). что касаетсяего рекции на запуск ПО, этим полностью управляет система.

Процессы у хрома грузятся быстро, потому что хром выполняет предзагрузку и кеширование возможных страниц и данных(как и любой вменяемый веб-браузер), на которые пользователь можете перейти. Новому процессу хрома абсолютно не надо ничего делать, все ресурсы ему уже подготовлены, он просто берет их в оборот.

Брать готовое же быстрее, чем готовить самому и только потом взять готовое?
Да, все это верно.
STRELOK-2007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateProcess GradGrad Visual C++ 5 03.03.2013 00:37
CreateProcess и тд sidjey Помощь студентам 0 11.04.2011 14:23
CreateProcess Акоб Общие вопросы C/C++ 7 24.03.2011 16:31
CreateProcess Yokka Общие вопросы C/C++ 0 03.06.2010 23:46
CreateProcess, С++ MaTBeu Win Api 5 06.10.2008 22:56