Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Frage zu XE7 Threadpool
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)
|