Bonjour,

Je développe une application qui gère plusieurs trheads de même type. Le type dérive de TThread.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
type
  PTThreadTmp = ^TThreadTmp;
  TThreadTmp = class(TThread)
  private
    Toto   : String;
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended:Boolean);
    destructor Destroy; override;
  end;


Je voudrais obtenir la liste exhaustive des threads qui ont été créés par mon application ?

Pour cela j'ajoute dans le constructor create :

Puis dans le destructor :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Index:=MyList.IndexOf(Self);
MyList.Delete(Index);
(MyList a été créé dans Initialization)

Dans ma fonction qui parcours l'ensemble des objets de MyList je procède comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
For i:=0 To Pred(ListOfRess.Count) Do Begin
  pThread:=PTThreadTmp(MyList .Items[i]);
  Result:=Result+pThread.Toto+Crlf;
End;

Mais j'ai des violations d'accès.

Comment faire pour enregistrer dans une TList mes objets TThreadTmp ?