AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Besser Task oder Thread?

Ein Thema von SearchBot · begonnen am 10. Nov 2022 · letzter Beitrag vom 10. Nov 2022
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Besser Task oder Thread?

  Alt 10. Nov 2022, 12:05
Hallo

Ich möchte eine Funktion/Prozedur in meinem Programm ausführen, aber nicht warten, bis sie durch ist.
Sie soll also parallel zu meinem Hauptprogramm eine kleine Sache machen und dann enden.

Es kann sein, daß ich das mehrfach benötige, während die vorigen Aufrufe noch nicht beendet sind (sie werkeln also "zeitgleich").
Ein Array von TTimer würde wahrscheinlich klappen, aber derselbe Vorgang soll ja nicht periodisch ausgeführt werden, sondern nur 1x.

Mache ich das dann mit TTask oder TThread, oder nehme ich besser noch was ganz anders?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Besser Task oder Thread?

  Alt 10. Nov 2022, 12:28
Ein Task wäre wahrscheinlich das Beste. Aber ein Thread wäre auch okay. Ist in den meisten Fällen denke ich nicht so entscheidend.
Und als Hinweis: Timer werden NICHT parallel ausgeführt! Code im Timer wird synchron im Hauptthread ausgeführt und blockiert den Rest des Programms.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Besser Task oder Thread?

  Alt 10. Nov 2022, 12:37
Wenn Du zu einem beliebigen späteren Zeitpunkt auf das Ergebnis zugreifen möchtest, kommt vielleicht auch TTask.IFuture in Frage.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

AW: Besser Task oder Thread?

  Alt 10. Nov 2022, 12:54
Wenn du sehr viele kurze Threads aufgaben ausführen willst, (dafür nicht einen längerlaufenden Thread erstellst, welcher selber alle/mehrere Aufgaben nacheinander ausführt)
dann sind Tasks mit einem ThreadPool besser, als viele einzelne Threads,
denn da werden einfach ein/mehrere Threads erstellt (z.B. passend zu den verfügbaren CPU-Kernen) und darin hintereinander jeweils mehrere Tasks zusammen in einem Thread ausgeführt
und das Ganze kann über den Pool an die jeweilige Aulastung angepasst werden. (nicht zu viele Aufgaben gleichzeitig)

Vorteil: Es entfällt das ganze "langsame/aufwändige" Geraffel, zum Erzeugen, Verwalten und Starten der "vielen" Threads.

https://learn.microsoft.com/en-us/wi...es-and-threads
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Besser Task oder Thread?

  Alt 10. Nov 2022, 13:35
Dankeschön für das neue Input.

PPL sieht vielversprechend für mich aus.
Spontan fallen mir etliche Anwendungsbereiche in meinen Programmen ein. Mal sehen, wie leicht die Umsetzung wird

Lese mich nun in das Thema ein und frage bestimmt nochmal was dazu
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 06:36 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