Ich gebe mal etwas vor. Wie sähe das denn korrekt aus mit einer Factory-Class?
Delphi-Quellcode:
type
TMyClass =
class
public
constructor Create(Parameter);
destructor Destroy;
override;
end;
implementation
constructor TMyClass .Create(Parameter);
begin
prüfe dies
prüfe das
WENN Fehler/korrupte Daten, dann
raise exception und abbrechen
SONST
am Ende erstelle Thread -A- oder -B-
end;
destructor TMyClass .Destroy;
begin
if Assigned(ThreadA)
then
begin
ThreadA.Stop;
// Funktion in der Thread-Unit selber - hat schon seinen Sinn :P
ThreadA.Free;
end;
// ThreadB, wenn Assigned, wird an anderer Stelle von Hand freigegeben
inherited Destroy;
end;
Delphi-Quellcode:
TMyClass: TList;
try
myClass := TMyClass.Create(Parameter);
except
end;
if Assigned(myClass) then // wenn oben rause ausgelöst wird, ist myClass not Assigned und muss nicht hinzugefügt werden
MyGenericTList.Add(myClass);