Einzelnen Beitrag anzeigen

Megamorph

Registriert seit: 28. Dez 2005
25 Beiträge
 
#6

Re: Problem mit Thread in der Klasse

  Alt 27. Dez 2008, 10:37
> Bitte, wenn du meinst. ("Nicht threadsicher" <> "Führt garantiert zum Absturz")
- MessageBox alleine crasht nicht
- Klassenzugriff alleine crasht
Also liegt es zumindest in diesem Fall am Klassenzugriff. Die Messageboxes habe ich auch nur als Debuggingmittel verwendet, sie sollen im fertigen Programm nicht mehr im Thread laufen.

> 1. Lies nochmal, wie man 'CreateThread' genau aufruft. Dort wird ein Zeiger auf eine Prozedur erwartet, Du übergibst einen Methodenzeiger. Vielleicht liegt es daran.

Ich glaube hier ist der Knackpunkt, bei C++ muss man invoken damit es funktioniert, aber ich habe nicht gefunden, wie man das bei Delphi umsetzt.

> 2. Verwende eine Ableitung der Klasse 'TThread' und erspare Dir Lowlevelfrust.

Habe ich ursprünglich verwendet, aber wie soll ich in der TWorkThread.Execute auf Klassenelemente von TXxxxxxx zugreifen (vermutet nichts Falsches hinter der Klasse, ich habe sie nur unkenntlich gemacht).

Meine vorrübergehende Lösung:

Ich packe den Programmteil, der in einem Thread laufen soll, in eine ganz normale Methode. Diese Methode rufe ich dann im Hauptprogramm nach dem Create des Objekts nach Bauplan der Klasse in einem Thread auf.
Das funktioniert soweit, entspricht aber nicht ganz der Modularität/OOP.
Wenn jemand noch eine Idee hat, wie man in Delphi invoked oder das Problem andersweitig löst, vielen Dank! (:
MfG Mega.
  Mit Zitat antworten Zitat