Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Proceduren "auslagen". In einen Thread?
zakoon - Mo 17.11.08 15:16
Titel: Proceduren "auslagen". In einen Thread?
Hallo zusammen,
In meinem Entwurf für einen Email-Checker gibt es den Programmteil, der sich per IMAP verbindet und Emaildaten vom Server holt. Das dauert mitunter richtig lange, und mein ganzes Programm bleibt solange hängen und reagiert nicht mehr.
Die Frage: Wie kann ich das lösen? Ist das ein Einsatzgebiet für nen TThread, oder gibts ne andere/bessere Möglichkeit?
Wenn ich einen Thread verwende, kann ich aus dem Thread heraus ganz normal Funktionen meiner Klasse ausführen, oder hängt dann wieder alles bzw. gibt es Probleme?
(Gibts irgendwo ne gute, kurze Einleitung zu threads im allgemeinen? Habe zwar schon manchmal welche verwendet, aber noch nicht wirklich verstanden...)
Danke! Zak.
elundril - Mo 17.11.08 15:32
Titel: Re: Proceduren "auslagen". In einen Thread?
Soweit ich weiß ist ein Thread da genau das richtige. Wie man sie verwendet weiß ich selbst nicht! :D
Ich hab mal gelesen das man am besten Messages benutzen soll um zwischen Thread und Hauptthread zu kommunizieren. Also einfach vom Thread eine Message mit einem bestimmten Wert an den Hauptthread senden und vom hauptthread auswerten lassen. Dabei musst du aber jeder Procedure die ausführbar sein soll einen wert (den wert den du schickst) zuordnen.
lg elundril
zakoon - Mo 17.11.08 17:24
Danke für den Hinweis, das Tutorial hat mir beim Einstieg gut geholfen.
Leider ist ausgerechnet der Abschnitt "6.4 Ereignisobjekte" etwas kurz geraten. Wenn ich alles richtig verstanden habe, brauche ich gerade so ein Objekt, um dem Haupt-Thread mitzuteilen, dass der Neben-Thread fertig wurde.
Kann vielleicht hierzu jemand ein Beispiel nachliefern? Dankeschön!
Edit: Ich habe es jetzt selbst herausgefunden. Falls es jemanden interessiert: Ich habe einfach selbst eine kleine Hilfs-procedure geschrieben, die ich am Ende des Threads starte. Die Hilfsprozedur beendet dann den Thread und teilt dies dem Hauptprogramm mit.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!