Thema: Delphi Formulare und Threads

Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Formulare und Threads

  Alt 5. Jan 2006, 13:46
Herzlich willkommen in der DelphiPraxis!

Erstmal etwas grundsätzliches zu Threads und Forms: Jeder Thread darf sich ohne Synchronisierung nur um seine eigenen Forms kümmern.
Dazu ein Zitat aus meinem Post im Delphi-Forum:
Zitat:
Dein Thread läuft ja nun durch die CPU wie er will. Er ist dabei völlig unabhängig vom Hauptthread, der sich z.B. um das Formular und speziell in diesem Fall um das Label kümmert. Wenn deinem Thread jetzt einfällt, das er etwas mit den Resourcen des anderen Threads machen möchte, dann sollte das "synchron" passieren, also so, das es zu keinen Konflikten zwischen den beiden Threads kommt. Das betrifft vor allen Dingen Aktionen mit grafischen Elementen. Der Synchronize-Prozedur übergibst du als einzigen Parameter eine Member-Prozedur des Threads (In diesem Fall "UpdateVCL"). Damit wartet der TTimeSync-Thread darauf, bis der Hauptthread wieder in seine Message-schleife kommt und macht dann erst seine Änderunge. Als Gegen-Beispielt kannst du einfach in deinem Thread mal ne MessageBox aufmachen. Du wirst dich wunderen wieviele verschiedene Formen eine Messagebox haben kann.
Lange Rede kurzer Sinn: Du musst deinen Thread wahrscheinlich mit dem Hauptthread synchronizen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat