Почему кнопки остановить/отменить/закрыть не действуют сразу? Например грузится в браузере тяжелая страница, я уже вижу нужный контент и нажимаю кнопку "стоп", но браузер продолжает грузить и перерисовывать страницу еще некоторое время. Другая ситуация, когда добавляю большой торрент в Transmission и хочу перезагрузить мак, но он не дает это сделать до тех пор, пока не распределит место для файлов. Я нажимаю "принудительно закрыть", но ему по барабану. Что это вообще такое, глобальная фича современных ОС? Почему нельзя просто взять и прервать все операции по требованию пользователя? Любой JS, запись файлов, что угодно, если пользователь требует этого немедленно.
Обработка любого действия в программе должна быть предусмотрено программистом.
Ваш юзер кейс (пример использования) не является типичным.
Да можно обрабатывать все ваши возможные случае прерывания исполнения программы и реакции на действия пользователя, только вот чтобы это реализовать нужен немыслимый объем работы программиста, от того всегда реализуют только те возможности которые напрямую влияют на "продажи" ПО.
Но ведь принудительный выход из приложения должен быть на уровне системы. Просто обрубить всю его активность, любую. Простейший пример - отмена копирования файла.
Потому что внутри браузера много всяких систем, и они могут работать последовательно и параллельно. Вы видите лишь надводную часть айсберга, и для вас "это все просто". Как правило это точка зрения дилетанта.
100000$ за то, чтобы браузер перестал слать запросы, а Transmission - мешать системе перезагружаться? Я бы лучше отдал эти деньги за то, чтобы такие "программисты" больше никогда не касались клавиатуры.
По большей части работает защита от дурака. Пользователи очень любят нажимать самые спрятанные кнопки и самые замысловатые сочетания клавиш.
Поэтому многие программы стараются выполнить текущее действие до конца, прежде чем прервать работу.
У вас есть друг который умеет только записывать по одной цифре. Вы диктуете ему последовательность, и тут вам прилетает оглоблей полбу - вы "забываете" на какой цифре остановились. С какой цифры вы начнете диктовать?