![]() |
Multi Threaded Application
Hallo zusammen,
ich habe vor eine Multi Threaded Application bzw. DLL zu bauen und wollte fragen ob sich jemand damit auskennt & mir eventuell ein wenig Hilfestellung bezüglich Aufbau geben kann. Zumindest wäre es gut zu wissen wie solch ein Multithreading aufgebaut ist und funktioniert. Danke schon mal im Vorraus. Gruß, Moony |
Re: Multi Threaded Application
Hallo,
auf die Schnelle würd ich dir empfehlen einfach mal da rein zu schauen: ![]() |
Re: Multi Threaded Application
oder das
![]() |
Re: Multi Threaded Application
Hi!
wenn du das Multi-Threading mit einer Art Jobliste realisieren möchtest, gibt es hier im Forum schon ein paar Themen. ![]() Wenn du beliebige Aufträge in die Liste legen möchtest, würde ich mich auch mit dem Thema Command-Pattern beschäftigen. Jeden Befehl bettet man dann in eine TCommand-Klasse. Wenn die Liste diesen Typ verarbeiten kann, kannst du ganz auf die schnelle nahezu jeden beliebigen Befehl in diese Liste tun. Gruß Pfoto |
Re: Multi Threaded Application
Danke für die zahlreichen Tips.
Ich habe es soweit hinbekommen, dass beim Initialisieren die benötigte Anzahl an Threads gestartet wird. Mir bleiben dann nur noch 2 Fragen: 1. Wie kann ich während der Laufzeit auf einen bestimmten Thread zugreifen? 2. Wie kann das Multitasking einsetzen. D.h. ich greife auf einen Thread zu. Während dieser ausgeführt wird, möchte ich auf einen anderen Thread zugreifen. Ist das möglich? Wenn ja, wie? Mit meinem jetzigen Code geht das wohl nicht. Der andere Thread startet erst, wenn der eine beendet ist. |
Re: Multi Threaded Application
Zitat:
kannst oder, falls die Instanzen der Threads in einer Liste von Pointern liegen, könntest du über die Listen-Einträge daran kommen. zu 2: Wenn du das Beispiel aus meinem obigen Link nimmst, wo die Threads einfach eine Jobliste abarbeiten und dann warten, bis es wieder was zu tun gibt, musst du im Prinzip gar nicht mehr speziell auf einen Thread gezielt zugreifen. Du schiebst einach einen neuen Job in die Liste und Threads arbeiten wieder brav. Wenn du dem User erlauben möchstest, eine bestimmte Methode z.B. das Hochladen einer Datei in einem eigens dafür eingerichteten Thread auszuführen, kannst du natürlich einen zweiten Thread starten usw. Wenn du hier jedoch dem User die Möglichkeit lässt, beliebig viele Threads zu starten, könnte das Dein Programm irgendwann in die Knie zwingen. Deswegen "stehe" ich halt so auf die Jobliste... :) Gruß Pfoto |
Re: Multi Threaded Application
Ja, aber mit der Jobliste wird das nacheinander ausgeführt. Das ist ja nicht Sinn und Zweck meiner Übung.
Ich will einen Thread starten. Während dieser Thread ausgeführt wird, will ich einen anderen Thread starten. das soll also parallel erfolgen können. Ich glaube ich habe eine Lösung gefunden. Mit dem Demoprojekt von Borland selbst. Indem Unterklassen von der Hauptklasse gebildet werden. Ich meld mich wenn das geklappt hat. |
Re: Multi Threaded Application
Zitat:
Gruß Pfoto |
Re: Multi Threaded Application
ich werde es bei Gelegenheit versuchen, wenn die Zeit dafür da ist.
Jetzt mache ich das in meiner Applikation so wie das Demoprojekt von Borland mit den verschiedenen Sortiersystemen. Ich habe nur ein Problem, beim Beenden der Applikation kommt eine deftige Exception mit Runtime Error. Wie kann ich bei der Finalisierung sicherstellen, dass alle Threads ordnungsgemäß beendet werden? |
Re: Multi Threaded Application
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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