Autor Beitrag
Frolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Fr 08.02.13 17:09 
Hey,

ich arbeite derzeit mit dem C++ Builder XE3 und würde gerne einen in ner Endlosschleife laufenden Code in einen Thread auslagern. Ich hab mich im Internet schon informiert und bin auf das gestoßen:
en.cppreference.com/w/cpp/thread/thread
Dort wird ein Namespace beschrieben, der seit C++11 vorhanden ist, was beim C++ Builder XE3 auch angegeben ist. Leider kann ich es über include nicht hinzufügen ..

Ich habe auch gesehen, das die VCL dafür TThread zur Verfügung stellt, aber das ist mir eigentlich zu aufwendig. Wisst ihr was ich machen soll? Und ja, das ist ein Delphiforum. Aber ich wüsste nicht, welches C++ Forum ich nehmen soll, da die wohl alle mit anderen Compilern arbeiten.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 08.02.13 18:39 
Hallo,

was ist dir denn an TThread zu aufwendig? Du brauchst doch nur den Code in die Execute-Methode zu kopieren - einzig für Ausgaben in die GUI müßtest du Synchronize() aufrufen.

Und wenn "#include <thread>" bei dir nicht klappt, dann unterstützt der XE3 es wohl doch noch nicht.
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Fr 08.02.13 21:43 
Kannst du mir ein Beispiel geben? Ich hab bis jetzt immer eine von TThread erbende Klasse erstellt :/Bei der anderen Methode müsste ich einfach nur nen Pointer auf die Funktion übergeben und die wird in nem anderen Thread ausgeführt.. Das ist halt schon weniger afwendig als ne ganze Klasse
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Sa 09.02.13 14:14 
user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du mir ein Beispiel geben? Ich hab bis jetzt immer eine von TThread erbende Klasse erstellt :/Bei der anderen Methode müsste ich einfach nur nen Pointer auf die Funktion übergeben und die wird in nem anderen Thread ausgeführt.. Das ist halt schon weniger afwendig als ne ganze Klasse

Ich kann zwar kein C++, sollte aber hier egal sein.
Du musst einfach nur TThread ableiten und in der Ableitung die protected Methode Execute überschreiben. Dort kannst Du dann den Code ausführen, der im Threadkontext laufen soll. Du kannst natürlich auch andere Methoden aufrufen. Mehr ist es nicht.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)