AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu XE7 Threadpool

Ein Thema von newbe · begonnen am 18. Mai 2015 · letzter Beitrag vom 19. Mai 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Frage zu XE7 Threadpool

  Alt 18. Mai 2015, 22:08
Es wird weder noch erzeugt. Wenn du einen Task haben möchtest, dann nimm TTask.Run oder TTask.Create , dann funktioniert auch TTask.CurrentTask .

TThread.CurrentThread.ThreadID funktioniert deshalb, weil das immer funktioniert. Egal was da läuft, alles läuft in einem Thread. Die Frage ist allerdings ob im MainThread (ist auch ein Thread) oder nicht.

Der ThreadPool sorgt aber dafür, dass die Methode in einem Thread <> MainThread abgearbeitet wird, allerdings nicht mit einem Task-Gerüst drumherum (du hast ja auch keinen Task erzeugt).

Das Abbrechen von den Tasks ist generell in der TPL sehr unglücklich gelöst. Und obwohl vieles von .NET abgekupfert ist, hat man die Details (z.B. CancellationToken/CancellationTokenSource etc.) einfach mal weggelassen und so eine Schmalspur-Variante eingebaut.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#2

AW: Frage zu XE7 Threadpool

  Alt 19. Mai 2015, 09:56
@ Sir Rufo

dann habe ich offensichtlich die Videos zur TPL nicht ganz verstanden. Ich nahm an, das die gesamte TPL auf der TTask Implementierung basiert, sozusagen einer Klasse mit etwas Overhead, welcher aber das Threadhandling sehr vereinfacht. Ich dachte wenn ich über

TThreadPool.Default.QueueWorkItem Workermethoden hinzufüge wird automatisch daraus ein TTaskobject erstellt. Das ist also nicht so?
Bleibt meine Frage nach der Locking Threadlist die es in TThreadpool geben soll und welche meine generierten Threads managen soll.
Das ist ja eigentlich eine der Kernfunktionen welche es beim Threadmanagment gibt. Ansonsten kann ich auch die OTL nutzen. Das mit dem fehlenden Cancellation Token ist auch mal wieder typischer halbgarer Embarcadero Käse, aber wir sind es ja schon gewöhnt. Will mich jetzt auch nicht aufregen. Kurze Frage noch an dich. Ich habe im Inet einen Beitrag von dir zu Bugs in der TPL entdeckt auf SO entdeckt (Stichwort Threadstealing) Kannst du mir sagen ob diese Bugs in XE7 Update 1 denn überhaupt gefixt wurden? Ansonsten ist ja wahrscheinlich von der Seite aus nix mehr von Emba zu erwarten.

mfg Newbe

Geändert von newbe (19. Mai 2015 um 09:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Frage zu XE7 Threadpool

  Alt 19. Mai 2015, 11:10
Wieso macht die TPL doch und wenn du damit richtig arbeitest, dann hast du doch auch einen Task.

Was ist denn jetzt so schwer daran?

Und welche von dir generierten Threads gibt es denn? Nicht einen, denn du erzeugst Tasks und keine Threads.

Die Threads erzeugt der ThreadPool und damit werden die Tasks abgearbeitet.

Warum willst du jetzt auf die Threads zugreifen?

In XE8 sind meine BugFixes (soweit ich das gesehen habe) wohl 1:1 übernommen worden. Das XE7U1 habe ich komplett ausgelassen, denn die alten Bugs hatte ich behoben und mit den neuen wollte ich mich nicht nochmal auseinandersetzen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Mai 2015 um 11:13 Uhr)
  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 19:30 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