Einzelnen Beitrag anzeigen

Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#1

IdTCPClient in eigenem Thread

  Alt 24. Sep 2013, 13:45
Hi,

vorab: ich habe noch nicht wirklich viel Erfahrung in der Thread-Programmierung, daher kann es sein, dass ich das Ganze auch komplett falsch angehe

Ich möchte ein Programm schreiben, das mir den MJPEG-Stream meiner Überwachungskamera(s) anzeigt.
Dazu habe ich mir eine Klasse TMJPEGClient geschrieben, welche von TThread abgeleitet ist.
Im OnExecute instanziiere ich ein TIdTCPClient, baue die Verbindung auf und empfange den Stream.
Sobald ein Frame empfangen wurde, feuere ich ein Event (NotifyJPEGReceived(Data: TMemoryStream); über Synchronize ab.

Im GUI-Thread wird dieses Event dann abgerufen und Data in einem Image-Control dargestellt.

Eigentlich funktioniert alles genau so wie ich es mir wünsche.
Aber:
Wenn ich das Programm einfach beende, während der Thread noch läuft, hagelt es Fehlermeldungen:
Zitat:
Im Projekt MJPEGTest.exe ist eine Exception der Klasse EIdSocketError mit der Meldung 'Socket-Fehler # 10093
' aufgetreten.
Zitat:
Im Projekt MJPEGTest.exe ist eine Exception der Klasse EIdWinsockStubError mit der Meldung 'Fehler beim Aufruf der Winsock2-Bibliotheksfunktion recv: Die Anwendung hat die Funktion WSAStartup nicht aufgerufen, oder bei dieser Funktion ist ein Fehler aufgetreten' aufgetreten.
Zitat:
Im Projekt MJPEGTest.exe ist eine Exception der Klasse EIdWinsockStubError mit der Meldung 'Fehler beim Aufruf der Winsock2-Bibliotheksfunktion WSAGetLastError: Die Anwendung hat die Funktion WSAStartup nicht aufgerufen, oder bei dieser Funktion ist ein Fehler aufgetreten' aufgetreten.
Zitat:
Im Projekt MJPEGTest.exe ist eine Exception der Klasse EIdWinsockStubError mit der Meldung 'Fehler beim Aufruf der Winsock2-Bibliotheksfunktion shutdown: Die Anwendung hat die Funktion WSAStartup nicht aufgerufen, oder bei dieser Funktion ist ein Fehler aufgetreten' aufgetreten.
Ich habe das Beispielprojekt mal angehängt... Hat jemand ne Idee, was ich hier falsch mache?
Angehängte Dateien
Dateityp: zip MJPEG.zip (81,3 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat