Einzelnen Beitrag anzeigen

Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Methode mit Synchronize mit Parametern aufrufen

  Alt 19. Dez 2006, 07:52
Ich habe mich nun auch mal an die TThread herangewagt.

Mein Problem war folgendes:
Ich habe drei Kartenleser. Bei jeder "Station" soll eine andere Aktion ausgeführt werden (Leergewicht ermitteln, Fahrzeug füllen, Vollgewicht ermitteln + Lieferschein drucken).
Somit habe ich drei Threads (für jede Station einen) und verschiedene OnIrgendwas-Funktionen (OnKarte, OnGewicht, usw). Wenn nun eine OnIrgendwas aufgerufen wird, wird vom Thread ja die Funktion des Hauptprogramms ausgeführt, also der Code in Unit1.pas.
Eigentlich dachte ich, dass der Thread dem Hauptprogramm nur mitteilt, dass es den jeweiligen Code ausführen soll. Daher habe ich mir über VCL und Fenster und Komponenten keine Gedanken gemacht, obwohl ich das in dem Thread-Tutorial ja gelesen habe. Meine Annahme ist aber falsch, wie ich inzwischen herausgefunden habe. Einer der Threads kam ins Flattern, als er das Druckformular mit Create erstellen sollte. Daraufhiin habe ich mit etlichen MsgBoxen den Ablauf verfolgt.
Nun habe ich alles so umgebaut, dass die Threads so schnell wie möglich wieder aus dem Code der Unit1 raus kommen. Also setze ich bei OnIrgendwas nur Merker und reagiere dann im Hauptprogramm entsprechend darauf. Wenn es nicht anderst geht, dann benutze ich Synchronize, um den Zugriff zu steuern.

Ist dieses Vorgehen empfehlenswert, oder habt Ihr noch bessere Vorschläge?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat