Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zwei Proceduren gleichzeitig starten ohne Thread ? (https://www.delphipraxis.net/92931-zwei-proceduren-gleichzeitig-starten-ohne-thread.html)

turboPASCAL 29. Mai 2007 13:47

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
Zitat:

Zitat von 3_of_8
Setz dir halt einfach ne Semaphore.

Der Lade-Thread setzt eine Eigenschaft von sich auf True und der andere Thread kann die dann auslesen und schauen, ob der Lade-Thread schon fertig ist.

Hört sich ja schon mal nach was an. Habe aber k.A. wie man das dann programiertechnisch umsetzt
da meine Informatikschulstunde etwas lange her war... :stupid:

3_of_8 29. Mai 2007 13:51

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
Wie gesagt: Du leitest dir eine Klasse von TThread ab, überschreibst die Execute-Methode mit deinem Code, fügst eine Eigenschaft "Ready: Boolean" hinzu (das ist die Semaphore). Der Thread setzt dann Ready:=True, wenn er fertig ist, und der Hauptthread kann dann daran erkennen, ob der Thread fertig ist. (Alternativ kann er auch einfach terminieren und der Hauptthread überprüft dann ob Terminated=True).

Dax 29. Mai 2007 13:56

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
Wären eventuell Fibers etwas für dich? Du könntest dir parallel zur Darstellung ein Ladefiber erstellen, dass vom Darstellungsfiber angesprungen wird und jeweils nach xyz Prozent/Sekunden/Legislativperioden die Kontrolle wieder dem Darstellungsfiber übergibt - und das so lange, bis alles geladen ist.

turboPASCAL 29. Mai 2007 13:58

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
Äh, ne so einfach ist es ja nun auch nicht. ;) Das Ding ist in nonVCL.
Habe aber heraugefunden das Winsows (die Unit) so etwas hat (CreateSemaphore).

Ich habe aber noch kein Anwendungs Beispiel gefunden.

3_of_8 29. Mai 2007 22:24

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
Klar kannst du dir von Windows ne Semaphore erstellen lassen. Das ist aber unsinnig, wenn du das, wie oben genannt, auch selber kannst. Die Windows-Semaphoren sind nämlich nur dafür da, wenn man mehrere Prozesse synchronisieren will. Sie gehen natürlich auch für einen einzigen Prozess, aber das ist halt dann Overkill.

turboPASCAL 29. Mai 2007 22:30

Re: Zwei Proceduren gleichzeitig starten ohne Thread ?
 
aha, ich werde dann mal deinen Vorschlag testen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
Seite 2 von 2     12   

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