Страница 1 из 1

Блокировка завершения работы Windows

Добавлено: Ср сен 02, 2015 10:17 am
Beast Winterwolf
Эта штука просто задолбала, честное слово! Я нажимаю кнопку выключения компьютера и ухожу спать. Просыпаюсь, а компьютер по-прежнему включен!

Добавлено: Ср сен 02, 2015 3:55 pm
Max Diesel
Полностью согласен с этим утверждением, так как уже довольно длительное время пытаюсь найти причину этой странности, но не получается. Обычно если уж программа не дает завершить работу системы, то попытка ее принудительно закрыть вручную тоже невозможна, однако здесь завершение вручную происходит легко... даже и не знаю, почему система ее не может закрыть. Как только обнаружится причина, сразу исправлю.

Re:

Добавлено: Ср сен 02, 2015 9:46 pm
evgenyatam
Max Diesel писал(а):Обычно если уж программа не дает завершить работу системы, то попытка ее принудительно закрыть вручную тоже невозможна, однако здесь завершение вручную происходит легко...
просто семерка после нажатия кнопки "Завершить принудительно" скидывает процесс. А этой ошибкой страдает и скайп. а причина - предположительно в том что система во время завершения работы подает программе команду "выйти" а потом через некоторое довольно маленькое время проверяет висит ли процесс - если висит - заявляет что невозможно завершить работу.

Добавлено: Ср сен 02, 2015 9:53 pm
Max Diesel
evgenyatam писал(а):просто семерка после нажатия кнопки "Завершить принудительно" скидывает процесс. А этой ошибкой страдает и скайп. а причина - предположительно в том что система во время завершения работы подает программе команду "выйти" а потом через некоторое довольно маленькое время проверяет висит ли процесс - если висит - заявляет что невозможно завершить работу.
Причина проблемы явно в чем-то другом, так как если вместо кнопки "Принудительная перезагрузка" нажать "Отмена" и затем снова повторить попытку перезагрузки, то эффект будет тот же, однако если нажав отмену потом просто нажать кнопку закрытия программы, то закрытие происходит совершенно ровно - программа не сообщает о каком-либо желании завершить недовыполненную операцию и не падает с ошибкой.

Добавлено: Чт сен 03, 2015 6:12 am
Beast Winterwolf
Подумайте, какие циклы в программе могут к этому приводить. Проблема однозначно в них.

Re: Re:

Добавлено: Чт сен 03, 2015 6:19 am
Beast Winterwolf
evgenyatam писал(а): просто семерка после нажатия кнопки "Завершить принудительно" скидывает процесс. А этой ошибкой страдает и скайп. а причина - предположительно в том что система во время завершения работы подает программе команду "выйти" а потом через некоторое довольно маленькое время проверяет висит ли процесс - если висит - заявляет что невозможно завершить работу.
У меня скайп завершается нормально и принудительное завершение срабатывает. Проблема не в том. Этот экран просто не должен зависать в ожидании вечно.

Добавлено: Чт сен 03, 2015 6:29 am
Max Diesel
Beast Winterwolf писал(а):Подумайте, какие циклы в программе могут к этому приводить. Проблема однозначно в них.
Если бы дело было в циклах, то не только система не могла бы завершить программу, но и пользователь тоже - по нажатию кнопки "Закрыть" программа бы не закрывалась и это легко позволило бы найти причину проблемы. Сейчас я внес изменения в код функции, которая отвечает за реакцию на команду завершения, возможно теперь проблема исчезнет. Сообщите мне если при следующем билде проблема повторится.

Re:

Добавлено: Ср сен 09, 2015 6:54 pm
evgenyatam
Max Diesel писал(а):
evgenyatam писал(а): Причина проблемы явно в чем-то другом, так как если вместо кнопки "Принудительная перезагрузка" нажать "Отмена" и затем снова повторить попытку перезагрузки, то эффект будет тот же, однако если нажав отмену потом просто нажать кнопку закрытия программы, то закрытие происходит совершенно ровно - программа не сообщает о каком-либо желании завершить недовыполненную операцию и не падает с ошибкой.
при нажатии "отмена" ничего кроме отмены завершения работы и закрытия окна не происходит.
закрытие происходит совершенно ровно потому что UC, как и любая другая программа, не чувствует скидывания процесса - так как при этом команды выхода не подается, а процесс принудительно завершается и чистится память занимаемая процессом.

Re:

Добавлено: Ср сен 09, 2015 6:57 pm
evgenyatam
Max Diesel писал(а): Если бы дело было в циклах, то не только система не могла бы завершить программу, но и пользователь тоже - по нажатию кнопки "Закрыть" программа бы не закрывалась и это легко позволило бы найти причину проблемы.
вот это совершенно правильно.

Добавлено: Ср сен 09, 2015 9:15 pm
Qwertiy
evgenyatam писал(а):закрытие происходит совершенно ровно потому что UC, как и любая другая программа, не чувствует скидывания процесса - так как при этом команды выхода не подается, а процесс принудительно завершается и чистится память занимаемая процессом.
Там имелось в виду закрытие пользователем при помощи крестика. В этом варианте тоже происходит отправка сообщения программе, только немного другого.