AGB  ·  Datenschutz  ·  Impressum  







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

[Thread] Zeichnen hört teilweise auf

Ein Thema von Tormentor32 · begonnen am 8. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: [Thread] Zeichnen hört teilweise auf

  Alt 8. Nov 2007, 18:06
Zitat von messie:
... halte ich für falsch, denn es würde einen TButton im Thread-Objekt voraussetzen. Eher so:
Das ist gehustet wie gesprungen. Es ist schliesslich nicht die gesamte Klasse welche den Thread stellt, sonder nur die Execute Methode welche innerhalb des Threads läuft. Wenn du nun mit Synchronize() eine Methode angibst, dann wird die Adresse der Methode per SendMessage in den VCL Thread (Message-Queue Bearbeitung) geschickt und dort dann aufgerufen. SendMessage kehrt nach der Ausführung mit dem Result zurück und in so fern wartet der Thread auf die Abarbeitung der angegebenen Routine (alles grob und vereinfacht).

Welche Methode dort angegeben wird, ist völlig egal. Es kann genauso gut eine Methode des Threads sein. Dies sollte sogar bevorzugt werden, weil:

a) Form1 eine globale Variable ist und nebenbei durch den VCL Thread bzw. alternativ "das Programm" sonstwie verändert werden (Zeit bis zum erreichen der Message vom Synchronize in der Message Queue). Dabei u.a. auch die Freigabe der Instanz etc und schon ist deine Methode weg - bzw greift auf nicht mehr gültigen Speicher zu, wenn sie Elemente nutzt.
b) Die Thread-Methoden meistens nicht reentrant aufgerufen werden und u.a. auch leichter dagegen geschützt werden können (Deklaration im Private-Abschnitt des Threads) als die VCL Formular-Methoden bzw. Methoden im VCL Thread ("das Programm"). Diese müssen schliesslich public sein, damit sie für die Synchronize Methode angegeben werden können.

Das bestehende Handling mit Synchronize muss vom Threadersteller nicht geändert werden, sondern ist so ok wie es ist.
  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 16:48 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