![]() |
TThread in Liste eintragen?
Hallo zusammen
Ich habe z.B.:
Delphi-Quellcode:
und möchte Diesen in eine Liste eintragen, TList oder so.
TMyThread = class(TThread)
private protected procedure Execute;override; public constructor Create; end; Jetzt habe ich die TObjectlist gesehen und mit
Delphi-Quellcode:
Allerdings kommt da ein Zugriffsfehler.
List.Add(TMyThread.Create);
Jetzt wollte ich wissen was da falsch ist, oder ob es ne andere Liste gibt, bei der das besser geht. Danke schonmal EDIT: Fehler ist nicht Lesen von Adresse 0. Ich hab die Liste davor Erzeugt :warn: |
Re: TThread in Liste eintragen?
Delphi-Quellcode:
TMyThread = class(TThread)
private protected procedure Execute;override; public constructor Create; end;
Delphi-Quellcode:
procedure TMyThread.Execute;
begin // inherited Execute; darf man nicht schreiben :D end; constructor TMyThread.Create; begin inherited Create(false); end;
Delphi-Quellcode:
Also DAS funktioniert bei mir ohne Probleme.. Also generell scheint es zu gehen...
procedure TForm1.Button1Click(Sender: TObject);
var T: TMyThread; h: TObjectlist; begin T:= TMyThread.Create; h:= TObjectList.Create; h.Add(T) // h.Add(TMyThread.Create); funktioniert bei mir auch. end; Vielleicht hast du ja vergessen die Objectliste zu erstellen mit Objectlist := TObjectList.Create; EDIT: Ich hab grad gelesen das du die Liste anscheinend doch erzeugt hast :mrgreen: |
Re: TThread in Liste eintragen?
Also bei meinem Execute steht nicht inherited Execute drin, allerdings dürfte das nichts ausmachen.
hmm.. naja, danke werds am WE nochmal durchlesen, vielleicht liegt es doch an was anderem. THX |
Re: TThread in Liste eintragen?
Zitat:
Kann es sein das bei dir dann eine Fehlermeldung "Abstract Error" kommt? also wenn ich T.Execute ausführe bevor ich T zur Liste hinzufüge dann gibts auch Ärger... EDIT: Ich merke grad das liegt an dem Execute.. man darf inherited Execute gar nicht aufrufen :D |
Re: TThread in Liste eintragen?
ne ich habs mal zeile für zeile durchgagengen.
Sobald inherited Create(False) ausgeführt wird kommt der Fehler. ist kein Abstrakt error, der íst auch sowieso nur im debugger sichtbar, wenn ich das prog ohne delphi starte denn sieht man glaub diese abstracterrors nicht. naja ich schau am WE mal und sag dann Montag mal bescheid obs geht. Wie kann ich eigentlich auf einen Thread mit seiner ThreadId zugreifen. also angenommen ich hab nur ne Id, z.B. 612. Wie kann ich dann eine Prozedur aus dem Thread aufrufen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz