Blockierenden Thread sauber (ohne Memory Leak) abbrechen

Für Fragen von Einsteigern und Programmieranfängern...
Helios
Lazarusforum e. V.
Beiträge: 76
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.0.12 Windows 10 64Bit / Lazarus 2.0.10 Debian 11 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: [gelöst] Blockierenden Thread sauber (ohne Memory Leak) abbrechen

Beitrag von Helios »

Hallo af0815,
ich habe auch Serverseitig komische Effekte gesehen wo der Connectionpool durch schlechte Client Treiber oder schlechte Programmierung der Datenanbindung aufgebraucht würde (Oracle). Ich wollte nur schnell darauf hinweisen, damit man sich bewusst ist, dass hier noch Tücken lauern können. Bis jetzt läuft aber alles sehr zufriedenstellend. Wenn es Probleme gibt melde ich es hier wieder und versuche eine Lösung mit euch herbeizuführen.
Danke für Deinen Hinweis und Gruß
Helios

Helios
Lazarusforum e. V.
Beiträge: 76
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.0.12 Windows 10 64Bit / Lazarus 2.0.10 Debian 11 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: Blockierenden Thread sauber (ohne Memory Leak) abbrechen

Beitrag von Helios »

Hallo zusammen,

bei weiteren Tests habe ich leider feststellen müssen, dass die angegebene Lösung zumindest unter Windows 10 doch nicht wie beschrieben funktioniert.
Das ist mir bei den Tests lange nicht aufgefallen, da die Abfragen nicht "langsam" genug die Ergebnisse zurück lieferten.
Wenn das Query.Open bei einer "Langläufer" SQL Abfrage nicht abgeschlossen ist, bleibt der Thread auch bei einem Beenden des Threads mit
TerminateThread(MyBlockingThread.Handle, 0) im Hintergrund "lebendig". Bei mehrmaligen Starts und Stops hängt dann irgendwann die Applikation.
Im Anhang ein Stand zum weiterexperimentieren. Ich gebe hier vorerst auf.
Danke nochmal an alle die unterstützt haben.
Gruß
Helios
Dateianhänge
BlockingThread4.zip
(128.44 KiB) 10-mal heruntergeladen

Antworten