![]() |
Kann Thread nicht mehr starten
Hallo,
ich versuche, einen Thread mit BeginThread zu starten. Dazu benutze ich folgenden Code:
Delphi-Quellcode:
Doch immer, wenn ich das Projekt starten will, meckert der Compiler und setzt mir den Cursor hinter "@Calc". Der Compiler sagt:
function TForm1.Calc: Integer;
begin result:=1; end; procedure TForm1.Button1Click(Sender: TObject); var ThreadID: DWORD; ThreadHandle: THandle; begin ThreadHandle:=BeginThread(nil, 0, @Calc, nil, 0, ThreadID); end; Zitat:
danke |
Re: Kann Thread nicht mehr starten
Deine Thread-Prozedur darf keine Methode sein. Da Methoden immer noch den unsichtbaren Self-Parameter haben, stimmt die Parameterliste nicht mehr mit dem Prototypen über ein.
|
Re: Kann Thread nicht mehr starten
Aber Funktionen und Prozeduren sind doch Methoden. Ich muss doch irgendwas aufrufen, was in dem Thread geschehen soll. Oder habe ich dich da falsch verstanden
|
Re: Kann Thread nicht mehr starten
Nein sind sie nicht. Sie werden erst dann zu Methoden, wenn sie zu einer Klasse gehören. Nimm die Funktion aus der Klasse raus.
Der richtige Prototyp lautet übrigens so:
Delphi-Quellcode:
type TThreadFunc = function(Parameter: Pointer): Integer;
|
Re: Kann Thread nicht mehr starten
Tatsache funktionert. Ich danke dir. Ich bin immer davon ausgegangen, dass alle Funktionen und Prozeduren Methoden sind... Aber man lernt ja eben nie aus...
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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-2025 by Thomas Breitkreuz