Ich habe ein QGIS-Verarbeitungsskript geschrieben, das eine Analyse der nächstgelegenen Einrichtung durchführt. Unter Verwendung des vollständigen Eingabedatensatzes (20.000 Adressen als Startpunkte, ~ 100 Zielpunkte, OSM-Straßennetz mit ~ 13.000 Linestrings) dauert das Skript etwa 3 Stunden und verwendet daher verschiedene Fortschrittsanzeigen, um dem Benutzer die Gewissheit zu geben, dass dies der Fall ist noch am Leben (Protokollausgabe, Fortschrittsbalken, verbleibende Zeit, Gummibänder, die den Weg zur nächsten gerade bearbeiteten Einrichtung anzeigen, siehe Screenshot unten):
Jetzt möchte ich das laufende Skript abbrechen und soweit ich sehen kann, geht das nur mit [X]
oben rechts im Bearbeitungsskript-GUI-Fenster erfolgen.
Dabei wird das Skript weiterhin verarbeitet, wie dies durch die blauen Gummibänder sowie die Verarbeitungszeit und den Fortschrittsbalken angezeigt wird.
... und die Systemressourcen im Task-Manager:
Einige Minuten (~ 14 Minuten) später stoppt das Skript jedoch die Verarbeitung und das System verbraucht keine Ressourcen mehr:
Da die Zeitspanne zwischen dem Schließen des Fensters und dem Beenden der Verarbeitung für mich ziemlich unvorhersehbar erscheint, lautet meine Frage: Ist dies eine empfohlene Methode, um QGIS-Verarbeitungsskripte abzubrechen, oder gibt es andere Möglichkeiten, um solche Skripte sauber von der Benutzeroberfläche abzubrechen?
quelle
sys.exitfunc()
.Antworten:
In der Befehlsshell würde "taskkill / f / im qgis-ltr-bin.exe / t" den Prozess sofort beenden. Ich glaube nicht, dass es eine GUI-Lösung gibt, die davon abhängt, was Sie anstreben. Wenn Sie in QGIS den Prozess sauber beenden möchten, müssen Sie beim Beenden des Prozesses auf das Programm warten. Über die Befehlsshell können Sie sich jedoch sofort vorwärts bewegen.
quelle