Hallo,
für ein Programm das unter anderem mittels HTTP-Get Seiten anfordert, möchte ich für eben diese Aufrufe eigene Threads erstellen, da sie den Rest vom Programm blockieren.
Beim Benutzen der Klasse TThread hatte ich das Problem das mein Programm sich nach dem Erstellen des Threads komplett aufhängte.
Hier nun mein Versuch über die WinAPI :
var ThreadIDWord;
Auktion:TAuction;
.
.
.
Auktion:=Auktionen.items[i]; //Auktionen ist eine Liste mit Objekten.
ThreadHandle:=CreateThread(nil, 0, @TAuction.Refresh ,Auktion, 0, ThreadID);
Dies hier funktioniert soweit, zumindest wird im Debugger auch die Methode Refresh aufgerufen, allerdings sind die Variablen nicht initialisiert (nicht verfügbarer Wert). Ich vermute es liegt daran das ich ja nicht die Methode der Instanz sondern die der Klasse übergeben habe. Wenn ich allerdings die Adresse der Methode der Instanz übergeben will kommt die Fehlermeldung "Variable erforderlich", der Cursor steht allerdings schon bei dem nächsten Argument, dort wo oben "Auktion" steht.
Meine Frage also :
Wie lautet der syntaktisch richtige Aufruf um einen Thread zu erzeugen in dem eine Klassenmethode abgearbeitet wird ?
Vielen Dank
für ein Programm das unter anderem mittels HTTP-Get Seiten anfordert, möchte ich für eben diese Aufrufe eigene Threads erstellen, da sie den Rest vom Programm blockieren.
Beim Benutzen der Klasse TThread hatte ich das Problem das mein Programm sich nach dem Erstellen des Threads komplett aufhängte.
Hier nun mein Versuch über die WinAPI :
var ThreadIDWord;
Auktion:TAuction;
.
.
.
Auktion:=Auktionen.items[i]; //Auktionen ist eine Liste mit Objekten.
ThreadHandle:=CreateThread(nil, 0, @TAuction.Refresh ,Auktion, 0, ThreadID);
Dies hier funktioniert soweit, zumindest wird im Debugger auch die Methode Refresh aufgerufen, allerdings sind die Variablen nicht initialisiert (nicht verfügbarer Wert). Ich vermute es liegt daran das ich ja nicht die Methode der Instanz sondern die der Klasse übergeben habe. Wenn ich allerdings die Adresse der Methode der Instanz übergeben will kommt die Fehlermeldung "Variable erforderlich", der Cursor steht allerdings schon bei dem nächsten Argument, dort wo oben "Auktion" steht.
Meine Frage also :
Wie lautet der syntaktisch richtige Aufruf um einen Thread zu erzeugen in dem eine Klassenmethode abgearbeitet wird ?
Vielen Dank
Comment