Okay, danke euch allen; glaube, ich bin jetzt ganz zufrieden
Zur Ergänzung ist mir noch aufgefallen, dass in den Code-Vorschlägen in meinem letzten Post noch Nachbesserungsbedarf besteht. Und zwar muss folgendes noch eingeschoben werden:
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
...
CSAbbruch.Acquire;
// ANFANG EINSCHUB ...
if Terminated then
begin
CoUninitialize; //*
CSAbbruch.Release; //*
Exit;
end;
// ... ENDE EINSCHUB
ArbeiteKritisch(...);
...
Wenn man beide //*-Zeilen in dieser Reihenfolge stehen lässt, kann es natürlich sein, dass sich das Programm beim Beenden ein bisschen Zeit lässt, da CoUninitialize ein bisschen braucht. Wenn man die Reihenfolge umkehrt, geht alles fix. Allerdings weiß ich nicht, ob das dann noch wirklich "sauber" ist. Dazu mache ich gleich noch einen Thread (ein "Thema"
) auf... (hier der Link:
http://www.delphipraxis.net/163649-p...es-sauber.html)
Beste Grüße!
Robert