Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Thread Manager. Aufruf einer Methode (https://www.delphipraxis.net/165411-thread-manager-aufruf-einer-methode.html)

Jackie1983 29. Dez 2011 10:36

Thread Manager. Aufruf einer Methode
 
Servus zusammen,

bin gerade dabei mir einen Threadmanager zu bauen.
Jeder Thread der bei mir in der Anwendung gestartet wird soll über den Manager laufen.

Auch die Threads die in einem Thread erstellt werden. So das ich eine Klasse habe die alle Threads kennt.

So weit fast kein Problem.
Nur wie ist das mit der Kommunikation mit dem Master Verwaltungs Thread?

Habe es zur Zeit so das der Verwaltungsthread eine Methode OnThreadChange hat. Diese werden die einzelnen Threads zugewiesen. Wie muss ich den Aufruf synchronisieren? So das nicht gerade zwei threads die Methode vom verwaltungsthread aufrufen.

gruß

s.h.a.r.k 29. Dez 2011 12:25

AW: Thread Manager. Aufruf einer Methode
 
Schau dir mal PostMessage/SendMessage/PostThreadMessage/SendThreadMessage an. Damit kannst du Nachrichten verschicken, die dann im jeweiligen Thread abgearbeitet werden können. Hier kannst du dann die blockierende oder die nicht blockierende Variante nutzen -- weiß leider nie, ob Post bzw. Send die blockierende (bzw. nicht blockierende Variante ist), da muss ich immer in der Hilfe nachschauen :stupid:

himitsu 29. Dez 2011 12:39

AW: Thread Manager. Aufruf einer Methode
 
Ganz einfach: Send gibt den Result des Aufrufs zurück, also wartet es, bis alles abgearbeitet wurde.

CriticalSections, Events und Co. könnte man auch nutzen.

r2c2 29. Dez 2011 13:34

AW: Thread Manager. Aufruf einer Methode
 
Ich bin mir grad nicht sicher, ob ich dein Vorhaben generell sinnvoll finden soll. Das scheint mir erstmal dem OOP/THread-Konzept zuwider zu laufen. Sag mal für was du das brauchst. Vielleicht gibts ne bessere Lösung.

mfg

Christian

Jackie1983 29. Dez 2011 14:00

AW: Thread Manager. Aufruf einer Methode
 
Hmmm okay....

Also die Anwendung starter die Threads.
Diese werden von einem Thread geprüft ob diese noch laufen, alle 5 Sekunden.

Wenn ein Thread was neues hat was er weitergeben muss, wir die Methode vom Verwaltungsthread aufgerufen.

Ich glaube mit CriticalSection geht es am einfachsten.

r2c2 29. Dez 2011 14:03

AW: Thread Manager. Aufruf einer Methode
 
Zitat:

Zitat von Jackie1983 (Beitrag 1143622)
Also die Anwendung starter die Threads.
Diese werden von einem Thread geprüft ob diese noch laufen, alle 5 Sekunden.

Wenn ein Thread was neues hat was er weitergeben muss, wir die Methode vom Verwaltungsthread aufgerufen.

Das ist nicht das, was du vor hast. Das ist deine momentane Lösung. So kann ich nix dazu sagen...

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr.

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