Entwickler-Ecke
Windows API - TThread Problem
Nano-Ware - So 22.07.12 11:45
Titel: TThread Problem
Hey,
ich wollte meine Anwendung durch einen weiteren Thread erweitern. Ich habe mir nun das Tutorial hier durchgelesen:
http://www.delphi-treff.de/tutorials/objectpascal/threads/tthread/ Ich habe zuerst mit den Funktionen CreateThread und BeginThread gearbeitet. Schon da spiegelte sich ein Problem heraus. Der erste Code den ich geschrieben habe habe ich mit CreateThread gestartet (Code leider nicht vorhanden). Das hat sogar funktioniert, aber laut dem Tutorial Autor ist ja BeginThread besser, außerdem "Die Parameter entsprechen den bei CreateThread beschriebenen.". Also habe ich einfach mal "CreateThread" durch "BeginThread" ersetzt und bekomm direkt beim Starten des Threads ne Zugriffsverletzung.
Da ich davon keine Ahnung habe, habe ich mir TThread angeschaut. Das funktioniert auch alles, aber ist doch in meinen Augen relativ umständlich. Kann mir jemand eventuell anschaulich erklären, wie ich mit BeginThread arbeite oder mich überzeugen, dass TThread doch gut ist? (:
Andreas L. - So 22.07.12 13:54
Was findest du bei TThread denn umständlich?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| type TWorker = class(TThread) protected procedure Execute; override; end;
...
procedure TWorker.Execute; begin while not Terminated do end;
procedure TForm1.Button1Click(Sender: TObject); begin worker := TWorker.Create(False); end; |
Nano-Ware - So 22.07.12 13:59
Du hast recht. Ich hab bis jetzt immer ein Object vom Typ TWorker erzeugt..
Andreas L. - So 22.07.12 14:04
Nano-Ware hat folgendes geschrieben : |
Du hast recht. Ich hab bis jetzt immer ein Object vom Typ TWorker erzeugt.. |
Das muss man schon machen:
Delphi-Quelltext
1:
| worker := TWorker.Create(False); |
oder meinst du das anders?
Nano-Ware - So 22.07.12 14:40
Okay, muss man dann auch "worker" wieder freigeben?
Narses - So 22.07.12 14:47
Moin!
Sag mal, ist deine Online-Hilfe kaputt oder hat dir einer die Suchmaschinen gesperrt? :suspect:
Es gibt da eine Eigenschaft: TThread.FreeOnTerminate, könnte was für dein Problem sein. :lupe: :idea:
cu
Narses
Nano-Ware - So 22.07.12 14:57
Nein natürlich nicht.. Ich komm mit der Onlinehilfe nur nicht klar und wüsste nicht nach was ich googlen soll. Trotzdem Danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!