![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Dilettante |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.3.2012 Репутация: нет Всего: нет |
Приветствую вас! Требуется получить временные характеристики процесса после его завершения при помощи TerminateProcess.
В результате вместо корректных значений в переменных мусор. При этом, если использовать функцию WaitForSingleObject и дожидаться закрытия вызванного блокнота, то всё нормально. После закрытия в переменных корректные значения. Подскажите, в чём тут дело? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Прямо во всех переменных? Дело в том, что
Поэтому в elapsedTime мусор... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Dilettante |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.3.2012 Репутация: нет Всего: нет |
2feodorv,
Нет, всё же в kernelTime и userTime нули. При этом я ещё не уточнил, что до TerminateProcess также снимаются временные характеристики процесса (передаются те же переменные). Получается, что GetProcessTimes не позволяет определить время существования процесса (ну то есть корректное значение exitTime), если процесс завершается с помощью TerminateProcess? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Бог его знает, но:
TerminateProcess Так что WaitForSingleObject всё равно нужен -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Dilettante |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.3.2012 Репутация: нет Всего: нет |
Мне всё же мне удалось решить проблему с мусором, просто добавив между TerminateProcess и GetProcessTimes задержку с помощью Sleep
Хотя идея с ожиданием завершения процесса мне показалась более очевидной. feodorov, благодарю за ответы и внимание к теме! Проблема вроде бы исчерпана) Это сообщение отредактировал(а) Dilettante - 12.10.2012, 20:16 |
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Dilettante, не за что!
А почему не воспользоваться
вместо Sleep()??? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| Dilettante |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.3.2012 Репутация: нет Всего: нет |
feodorv, да просто это лабораторная работа и так поставлено задание) Точнее, я его так понял. Вообще необходимо произвести замер временных характеристик процесса, потом ожидать нажатие клавиши (cin.get() или getch() то есть), после чего производится TerminateProcess из процесса-родителя и вновь снимаются характеристики. А WaitForSingleObject ведь, насколько я понял, конкретный интервал ожидает, или пока не завершится потомок добровольно.
Это сообщение отредактировал(а) Dilettante - 12.10.2012, 20:45 |
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Пока вообще не завершится, добровольно или принудительно, без разницы, WaitForSingleObject не разбирает. Цитирую ещё раз:
То есть:
Преимущества WaitForSingleObject:
Уже наличие одной вероятности того, что всё может пойти не так, как задумано, должно решить вопрос в пользу WaitForSingleObject. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| Dilettante |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.3.2012 Репутация: нет Всего: нет |
2feodorv
Да, я не понял что вы имели ввиду в первый раз. Я думал так не получится сделать. Спасибо за подробное объяснение! Верну WaitForSingleObject на место. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |