![]() |
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ß |
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:
|
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. |
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 |
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. |
AW: Thread Manager. Aufruf einer Methode
Zitat:
mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 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