Einzelnen Beitrag anzeigen

Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#7

Re: Probleme mit Frames und deren Aktualisierung in Formular

  Alt 16. Jun 2006, 16:29
Hallo!

Delphi-Quellcode:
SizeOfIncomingStream := Socket.ReadInteger;
Socket.ReadStream(IDS, SizeOfIncomingStream);
Da es sich hier nicht um einen asynchronen Befehl handelt, wird doch gewartet, bis der komplette Stream eingelesen wurde. In dieser Zeit ist der VCL-Hauptthread natürlich blockiert, es werden keine Botschaften oder sonstiges verarbeitet. Da hilft dir auch ein irgendwie gearteter Timer nicht, denn der wartet auch darauf, daß der VCL-Hauptthread wieder auftaucht von der Prozedur...

Du musst dafür sorgen, daß der Download in separaten Threads erfolgt. Im Delphiforum habe ich da ein paar TCP-Komponenten gepostet, die dir asynchrones Lesen erlauben und dir synchronisierte Ereignisse wie OnRead und OnProgress liefern, kannst sie dir ja mal anschauen. Stichwort SimpleTCP.

Cu,
Udontknow
  Mit Zitat antworten Zitat