![]() |
mehrere Prozeduren gleichzeitig ausführen
Hallo!
Ich schreibe gerade an einem PC_Spiel. Da möchte ich zwei oder mehr Prozeduren gleichzeitig ablaufen lassen. Ich kenne es bisher nur so, das man eine Prozedure aufruft, und wenn inerhalb dieser wieder eine Prozedure ausgeführt wird, wird diese zuerst beendet, bevor die erste weitergeführt wird. Nun möchte ich aber zwei, oder mehr, Prozeduren, es könnte auch die gleiche sein, gleichzeitig ausführen lassen. Geht das, und wenn ja, wie? |
Re: mehrere Prozeduren gleichzeitig ausführen
Stichwort: Threads ;)
|
Re: mehrere Prozeduren gleichzeitig ausführen
Genau gleichzeitig geht nicht, aber mit
![]() |
Re: mehrere Prozeduren gleichzeitig ausführen
Ich brauch das auch in meinem Spiel und mach das da mit verschiedenen Threads
(mehrere Spielfiguren die gleichzeitig Befehle ausführen, jede Figur ein Thread) ![]() :angel: EDIT : Hehe, drei Dumme, ein Gedanke(kommt mir bekannt vor) |
Re: mehrere Prozeduren gleichzeitig ausführen
Danke!
Gibt es dafür auch ein Tutorial oder so was? |
Re: mehrere Prozeduren gleichzeitig ausführen
Wobei mit Threads nur eine scheinbare Parallelität für den Benutzer erzeugt wird. Wirkllich parallel kann man Code nur auf Mehrprozessorsystem ausführen. Die Parallelität, die man durch Threads erreicht, ist aber für 99,9% der Fälle vollkommen ausreichend.
Und ein Tutorial findest du hier: ![]() |
Re: mehrere Prozeduren gleichzeitig ausführen
Mal wieder zu schnell gepostet...
Habs mit der Forensuche gerade gefunden |
Re: mehrere Prozeduren gleichzeitig ausführen
schau dir einfach mal das "TThread" Objekt an und such im Forum, ich hab die Tutorials nicht vestanden.
Es gibt auch ne Demo bei den DelphiDemos. Es gibt aber auch ein Tutorial von Luckie, ist sehr beliebt, mir wars für meinen Zweck allerdings zu viel. |
Re: mehrere Prozeduren gleichzeitig ausführen
Zu viel? Was war denn da zu viel? Willst du nicht verstehen was du da machst?
|
Re: mehrere Prozeduren gleichzeitig ausführen
@Luckie
Nun ja, ich "kenne" jetzt zwei Arten von Threads, die die über das TThread Object erstellt werden und dann die Sache mit CreateThread usw. wo man glaub ich sehr viele Parameter angeben muss. Die erste Methode ist die für Einsteiger(wie mich) etwas einfachere Methode, da man lediglich das Objekt ableiten muss und dann mit den Methoden: Create(True/False),Execute,Suspend,Resume und Terminate relativ locker einen Thread produziert.Natürlich muss man auch Dinge beachten wie die Methoden aus dem Hauptthread nur mit Synchronize auszuführen, aber trotz alledem ist es einfacher zu verstehen und für das was ich(und vmtl. auch maximus) zu dem Zeitpunkt gebraucht habe vollkommen ausreichend. die zweite ist etwas komplizierter, da man wie schon gesagt viele Parameter benötigt. Und wenn ich mich recht erinnere hast du überwiegend die zweite Methode beschrieben.(Hab nach einiger Zeit aufgehört zu lesen, da es mir zu kompliziert war) Ich möchte zwar verstehen was da geschieht, allerdings hat für mich eben die erste Methode ausgereicht und wenn man eben noch garnichts über Threads weis und auch nicht weis das es ein TThread object gibt, dann ist es schon mal gut zu erfahren das es was einfacheres gibt als diese "Paramterrumschubserei"(<= ist nicht böse gemeint ging mir grad so durch den Kopf) Mfg, :angel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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