Du kannst auch einfach Terminate verdecken (also ohne override), wenn du (wie ich jetzt begriffen habe) DeineKlasse.Terminate direkt von außen aufrufst.
Aber nicht vergessen daß die Thread-Variable dann auch mit TMeinThread deklariert sein muß.
Bei einer TThread-Variable würde wieder das "Alte" aufgerufen.
Pipes gehen nicht asynchron (zumindest bis XP)
Kann mich nicht erinnern mal was davon irgendwo gelesen zu haben, daß es irgendwo nicht geht, aber hab mich auch noch nicht so mit Pipes beschäftigt und dieses bisher nur für "normale" Dateien verwendet.
Wie, womit wird denn die Datei runtergeladen?
Viele der Wege bieten es ja an, daß man wärend des Downloads Ereignisse bekommt oder wo man stückchenweise in einen Puffer lesen kann und dann dazwischen die Abbuchbedingung mit einbindet.