AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi TTask bei FMX startet nicht (Delphi 10.2)
Thema durchsuchen
Ansicht
Themen-Optionen

TTask bei FMX startet nicht (Delphi 10.2)

Offene Frage von "himitsu"
Ein Thema von nytaiceman · begonnen am 17. Dez 2017 · letzter Beitrag vom 17. Dez 2017
Antwort Antwort
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:17
Ist ForceQueue also dasselbe wie Queue aus dem Hauptthread?

Oder anders gefragt: da wo ich Queue aus dem Hauptthread aufrufe, sollte besser ForceQueue genutzt werden?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:29
Genau.
ForceQueue ist in Threads das Gleiche wie Queue.
Im Hauptthread aufgerufen arbeitet Queue aber "falsch".

Man dachte sich es zu optimieren, bzw. der Code für Queue wurde von Synchronize geklaut.
Wegen des potentiellen Deadlocks wird dort (im Synchronize) geprüft, ob es bereits im Hauptthread ist und dann direkt ausgeführt.
Mir wäre ja lieber gewesen sie reparieren Queue, anstatt 'ne neue Funktion einzuführen.

Am Einfachsten immer nur ForceQueue, denn das geht überall ... sonst wundert man sich im Haupthread, dass Queue dort doch nicht verzögert arbeitet, so wie man es hätte denken können.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Dez 2017 um 14:32 Uhr)
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:36
Meinst du also, man sollte nur noch TThread.ForceQueue (statt TThread.Queue) verwenden, egal ob ich im Hauptthread oder in einem eigenen TThread oder TTask bin?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:37
Jupp.

Es ist einfacher sich auf einwas zu einigen, anstatt immer zu wechseln, so muß man nicht aufpassen was man wann nutzen muß.
In diesem Fall das, was immer und überall funktioniert.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:39
ForceQueue schiebt aber trotzdem erst in die Warteschlange und wartet nicht auf das Ende so wie Synchronize oder? Ist gerade etwas verwirrend.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:44
Theorie laut Definition:
Jupp, Queue/ForceQueue in Warteschlange und sofort zurück
und Synchronize in Warteschlange und warten bis fertig.

Ausnahme in der Praxis:
Nur dass Queue im Haupthtread aufgerufen eben die selbe "Optimierung" wie Synchronize hat und dort Beide nicht in die Warteschlange gehen, sondern direkt ausgeführt werden.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:44
Tolle Optimierung
  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 20:22 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