(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: thread
1. Aug 2006, 21:15
In deiner Funktion "Hauptprogramm" änderst du den Inhalt des Memos. Dieses Memo wird allerdings auf der grafischen Oberfläche des Hauptthreads dargestellt. Wenn du also aus deinem Thread die Funktion "Hauptprogramm" aufrufst machst du dinge im Hauptthread obwohl du ja eigentlich einen eigenen Thread genommen hast um dich von diesem zu lösen. Du solltest generell davon abstand nehmen in einem Thread auf das Haupprogramm zu zugreifen. Wenn du unbedingt auf das Hauptprogramm zugreifen musst, dann muss dies mit Syncronize passieren sonst kann es passieren das der Hauptthread und dein eigener Thread gleichzeitig auf etwas zugreifen und dann passieren lustige Effekte und nix geht mehr. Du müsstest dein Programm also umschreiben da du die Berechnungen alle im Thread machst und NUR ausgaben mit Syncronize im Hauptthread machst. Daher wurde am Anfang des Themas auch geschrieben das Threads nur sinn machen wenn du intensive Berechnungen hast (wo also nicht ständig auf den Hauptthread mit Ausgaben etc. zugegriffen wird). In deinem Beispiel solltest du auch ohne Thread auskommen und dafür mit "Application.ProcessMessages" dafür sorgen das die Anwendung nicht ganz einfriert.
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|