Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Frage zu XE7 Threadpool

  Alt 18. Mai 2015, 23: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