Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere Prozeduren gleichzeitig ausführen (https://www.delphipraxis.net/58762-mehrere-prozeduren-gleichzeitig-ausfuehren.html)

maximus Caesar 12. Dez 2005 11:59


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?

dizzy 12. Dez 2005 12:01

Re: mehrere Prozeduren gleichzeitig ausführen
 
Stichwort: Threads ;)

Ultimator 12. Dez 2005 12:02

Re: mehrere Prozeduren gleichzeitig ausführen
 
Genau gleichzeitig geht nicht, aber mit Hier im Forum suchenThreads kannst du ein beinahe-gleichzeitig hinbekommen.

Angel4585 12. Dez 2005 12:02

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)

Hier im Forum suchenThreads

:angel:


EDIT : Hehe, drei Dumme, ein Gedanke(kommt mir bekannt vor)

maximus Caesar 12. Dez 2005 12:04

Re: mehrere Prozeduren gleichzeitig ausführen
 
Danke!
Gibt es dafür auch ein Tutorial oder so was?

Luckie 12. Dez 2005 12:05

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: http://delphitutorials.luckie-online.de . Aber mit etwas Eigeninitiative hätte man mit der Forensuche oder mit Google bestimmt auch selber was gefunden.

maximus Caesar 12. Dez 2005 12:06

Re: mehrere Prozeduren gleichzeitig ausführen
 
Mal wieder zu schnell gepostet...
Habs mit der Forensuche gerade gefunden

Angel4585 12. Dez 2005 12:07

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.

Luckie 12. Dez 2005 12:13

Re: mehrere Prozeduren gleichzeitig ausführen
 
Zu viel? Was war denn da zu viel? Willst du nicht verstehen was du da machst?

Angel4585 12. Dez 2005 12:59

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 15:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz