конечная задача против конечного процесса

2945
Joel Coehoorn

Почему завершение задачи в XP / Vista занимает намного больше времени, чем завершение самого процесса? Какова связь между задачей и процессом с точки зрения ОС?

2

2 ответа на вопрос

7
user4905

«Задача» - это термин, используемый «Диспетчером задач» для - оправдания его имени - для отображения списка «главных окон пользовательских процессов» (*), если таковые имеются

«Завершить задачу» дает «задаче» (цикл сообщений для «главного окна») последний шанс отреагировать на сообщение WM_CLOSE и тайм-аут на связанный процесс до завершения. ( Http://blogs.msdn.com/ oldnewthing / архив / 2004/07/22 / 191123.aspx )

«Завершить процесс» - это грубый процесс TerminateProcess, отбрасывающий все ожидающие изменения в файлах или других ресурсах.

Обычно для отчета Microsoft Online Crash Analysis (Dr. Watson) создается мини-дамп, который также может занять секунду или две.

(*) Рэймонд, я знаю, что это так неточно.

На самом деле, я не уверен, что «конечный процесс» настолько жесток, что кажется, что программа все равно будет ждать завершения. Похоже, по крайней мере, так как это занимает больше времени, по сравнению с Process Explorer (который явно не дает шансов и отправляет команду «kill»). Хотя я могу ошибаться, это только личное наблюдение. Gnoupi 15 лет назад 0
Конечно, есть разница в поведении конечной задачи между проводником процессов и стандартным диспетчером WinTask. Я думаю, что в Process Explorer реализован самый грубый метод для завершения работающего PID. Axxmasterr 15 лет назад 0
5
Amber

Я полагаю, что завершение задачи сначала требует корректного завершения работы программы, тогда как завершение процесса является эквивалентом SIGKILL для Windows - ОС просто выводит процесс без вопросов.