AGB  ·  Datenschutz  ·  Impressum  







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

VCL not thread save

Ein Thema von stahli · begonnen am 6. Mär 2014 · letzter Beitrag vom 8. Mär 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: VCL not thread save

  Alt 6. Mär 2014, 15:54
Die Anzeige informieren, dass sich etwas verändert hat und die Anzeige holt dann (sobald es möglich ist) die neuen Werte und stellt diese dar.

Der UI-Thread sollte eigentlich fast immer schlafen (idle) und nur kurz aufleben um neue Informationen anzuzeigen oder Eingaben vom User entgegennehmen und diese dann weiterreichen.

Idealerweise müsste der Business-Layer (allgemeiner: alles was nicht zu UI gehört) im eigenen Thread-Kontext laufen, was aber in den meisten Fällen nicht passiert, da sich die Laufzeit der Aktionen meistens auf ein paar Millisekunden beschränkt (wenn überhaupt messbar) und ein eigener Thread-Kontext wäre dort mit Kanonen auf Spatzen schießen.

Somit werden sich nur die langwierigen Abläufe herausgepickt und diese werden in einen separaten Thread-Kontext verschoben.

Zurück zu deinem Beispiel mit der Schleife:
Die Schleife gehört in einen eigenen Thread und die Werte in ein Daten-Objekt. Das UI wird informiert, dass sich die Daten geändert haben und dann entscheidet das UI wann genau es diese neuen Informationen abruft und darstellt (ASAP oder maximal alle x Millisekunden).

Die meisten Programmier-Anfänger haben allerdings vor dem Start ihrer Karriere auch das Prinzip des UI nicht verstanden bzw. sich darüber keinen Kopf gemacht (ich möchte mich dort unbedingt eingeschlossen wissen). Daher auch diese "Fehler", denn es passiert etwas anderes als man erwartet hat. Es passiert aber nun mal genau das, was man programmiert hat. Diese Erwartungshaltung rührt aber von Unwissenheit her, und das schützt nun mal nicht vor der Strafe
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
 


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 05:40 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