Hi Leute,
mal ne allgemeine Fragen zur Multi-Thread-Programmierung :
Situation:
Gehen wir jetzt mal von einem einfachen Chat aus.
Problem :
Ich verwende die
Indy TIdTCPServer-Komponente. Jetzt bekomme ich innerhalb der OnExecute Methode des TIdTCPServer meinen AThread: TIdPeerThread innerhalb dieses Threads bekomme ich jetzt Nachrichten wie z.B. Connect UserXY, DisConnect UserXY, ChatText "ich chatte mit Dir".
Jetzt möchte aufgrund dieser Nachrichten auf meiner Main-Form reagieren.
Meldet sich ein User an, so muss der Username in einem ListView hinzugefügt werden.
Meldet sich der User ab, muß er aus dem ListView entfernt werden.
Schreibt der User etwas, so muß das natürlich dem Benutzer angezeigt werden.
Frage 1:
Wie kann ich das alles Thread sicher realisieren ? Laut Delphi-Hilfe müßte ich mit syncronize arbeiten, dabei kann ich aber keine Übergabe Parameter verwenden. Wie also sage ich meinen Thread das er dir Procedure AddUser(newUser : String) Thread-sicher ausführen soll und wie übergebe ich den Usernamen ?
Frage 2:
Oder muss ich wie im Delphi-Demo "Threads" mir meine eigene Thread-Klasse schreiben, diese innerhalb des
Indy-Threads mit den benötigten Parametern(z.B. ListBox und Memo) erzeugen ?
Vielen Dank im Vorraus,
Data