Das Chart ist eine Eigenentwicklung die darauf ausgelegt ist damit so arbeiten zu können, keines der einschlägigen bekannten Charts. Alle nicht atomaren "Quergriffe" sind in Critical-Sections fein säuberlich abgesichert, und gezeichnet wird nur im Hauptthread. Und ja, alle UpdateThreads werden für das selbe Chart gestartet - ich habe in diesem Programm nur eines.
Ich hatte heute noch ein wenig mit dem
SQL "KILL" gespielt, und diversen anderen Möglichkeiten, aber irgendwie war alles entweder langsam oder hat (teils auch nachvollziehbar) AVs gehagelt. Letztlich bin ich jetzt dabei gelandet bei nötigem Daten-Update erst einen Timer auf 100ms zu starten, und erst wenn in der Zeit kein neues Update-auslösendes Ereignis auftritt starte ich einen neuen Thread. Ansonsten wird der Timer wieder neu aufgezogen. Als Fallback bleibt das gezeigte, also letztlich KillThread().
Ich bekomme nach 1-2 Minuten wildesten Herumzoomens in meinem Chart nur so rund 10 verwaiste ProzessIDs im
MySQL Server, die mit Beenden meines Programms auch brav verschwinden. Damit kann ich leben. Auch der Speicherverbrauch ist nicht angestiegen, zwischendrin sogar wieder gesunken, und nach Prozessende räumt Windows ja eh wieder alles weg. (Zumindest schien mir das im Taskmanager so.)
Da ich nach langer Recherche bisher keinen zufriedenstellnden ordentlichen und schnellen (in der Ausführung) Weg gefunden habe, und das Programm ohnehin nur so 5-10 Mal im Monat zur Auswertung zum Druck von ein paar Energiemessdaten benutzt wird - selten länger als eine Stunde am Stück und von weniger als 5 PCs aus - werde ich mich vorerst mit dieser leicht krüppeligen Lösung zufrieden geben müssen. Bedienbarkeit und Zeitmangel sind hier wichtiger als der Stolz es ordentlich gemacht zu haben. Zähneknirschend. Andere Projekte klopfen schon wild an der Tür.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)