Ansonsten kann man das auch schön mit dem Visitor-Pattern lösen.
Delphi-Quellcode:
type
TMyThread = class( TThread )
private
FList : TObjectList;
public
procedure AddToList( AList : TObjectList );
procedure RemoveFromList( AList : TObjectList );
destructor Destroy; override;
end;
procedure TMyThread.AddToList( AList : TObjectList );
begin
AList.Add( Self );
end;
procedure TMyThread.RemoveFromList( AList : TObjectList );
begin
AList.Remove( Self );
end;
destructor Destroy;
begin
RemoveFromList( FList );
inherited;
end;
FList wird nie verwendet ausser im Destruktor - daher auch mein Mißverständnis. Wozu dient FList?