Попробуйте его с помощью Завершить процесс (на вкладке Process) из диспетчера задач вместо этого, и попробовать, есть ли разница, если вы выбираете убить процесс с дерева на любом диспетчере задач или Winternal в Process Explorer, однако я сомневаюсь, что это поможет.
Процесс должен быть убит (почти) мгновенно, однако есть некоторые подлые способы придерживаться. Если вы написали свое собственное приложение, я предполагаю, что это не так. Более вероятно, что другим процессам не нравится, когда вас отнимают. Установите Process Monitor на скорость быстрого обновления и отсортируйте столбец процессора. Теперь вы должны увидеть, какой процесс вызывает 100% -ную проблему. Скорее всего: система.
В случае, если вы используете много памяти, особенно. когда это в целом больше, чем физическая память, система будет реорганизоваться (т. е. переместить память с диска обратно в физическую память). Подобное поведение происходит (вплоть до замораживания моей системы), когда я убиваю Firefox после того, как открываю 500 + вкладки, занимая 1,5 ГБ памяти. Такое поведение (медленная реорганизация памяти) улучшилось с более поздними версиями Microsoft Windows.
ОБНОВЛЕНИЕ: внутренне, proc expl. вызывает TerminateProcess (среди прочих), который принудительно закрывает все ручки и потоки. MSDN API ref говорит: «TerminateProcess инициирует завершение и немедленно возвращается. Это останавливает выполнение всех потоков в процессе и требует отмены всех ожидающих ввода-вывода. Прекращенный процесс не может выйти, пока все ожидающие ввода-вывода не будут завершены или отменены».. Это означает, что: ваш ввод-вывод может блокировать этот процесс (хотя мне интересно, как он может довести ваш процесс до 100%, I/O обычно этого не делает).
Это на Vista/Win7? –
Он сказал 'Windows server 2003'. – Jim
Простите, пропустил это, спасибо. Вы получаете то же поведение с другими инструментами, как kill.exe из набора ресурсов, taskkill.exe с параметром/F или pskill.exe? –