Я написал скрипт обработки QGIS, который выполняет анализ ближайшего пункта обслуживания. Взяв полный набор входных данных (20 тыс. Адресов в качестве начальных точек, ~ 100 целевых точек, дорожная сеть OSM с ~ 13 тыс. Линий трасс), сценарий выполняется около 3 часов и поэтому использует различные индикаторы прогресса, чтобы убедить пользователя в том, что он все еще жив (вывод журнала, индикатор выполнения, оставшееся время, резинки показывают путь к ближайшей обработке, см. скриншот ниже):
Теперь я хотел бы отменить запущенный скрипт, и, насколько я вижу, это можно сделать только с [X]
правым верхним краем в окне графического интерфейса скрипта обработки.
Но при этом сценарий продолжает обрабатываться, на что указывают синие резиновые полосы, а также время обработки и индикатор выполнения ...
... и системные ресурсы в диспетчере задач:
Однако через пару минут (~ 14 минут) сценарий прекращает обработку, и система больше не потребляет ресурсы:
Поскольку промежуток времени между закрытием окна и остановкой обработки мне кажется довольно непредсказуемым, у меня вопрос: это рекомендуемый способ отмены сценариев обработки QGIS или есть другие способы чистого удаления таких сценариев из графического интерфейса?
источник
sys.exitfunc()
.Ответы:
Из командной оболочки «taskkill / f / im qgis-ltr-bin.exe / t» немедленно завершит процесс. Я не думаю, что есть решение с графическим интерфейсом, основанное на том, что вы собираетесь, хотя. В QGIS, если вы хотите аккуратно завершить процесс, вам придется ждать, пока программа завершит процесс. Но через командную оболочку это позволит вам сразу же двигаться вперед.
источник