AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Thread Manager. Aufruf einer Methode

Ein Thema von Jackie1983 · begonnen am 29. Dez 2011 · letzter Beitrag vom 29. Dez 2011
Antwort Antwort
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 11:36
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ß
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 13:25
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
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.504 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 13:39
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#4

AW: Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 14:34
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
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#5

AW: Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 15:00
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.
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

AW: Thread Manager. Aufruf einer Methode

  Alt 29. Dez 2011, 15:03
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
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf