> after some successful years with ICS I am now trying to do some FTP
> transfers in a separate thread. Everything happens in the thread,
> including the FTPClient component creation. The thread itself uses
> the synchronous commands, for example FTPClient.Get.
> I am currently using ICSV6 (OverbyteIcsFtpCli.pas V2.108).
> My problem is that this separate thread makes my application very
> unresponsive. The main application thread seems to be almost totally
> blocked and responds to messages, such as moving or drawing the
> main window, only after big delays.
Avoid using sync methods when using a thread. You'll eat up CPU for nothing.
Use pure async operation.
> Am I missing something very basic here? Does anybody have an idea?
Be sure to create your component from the thread's Execute method and /not/
from the thread constructor or your events will be handled by the main
thread ! (Not an ICS issue, but simply the way Windows is working).
Aslo, if you have a very fast network, such as a GigaBit Ethernet, it is
well possible that your transfer become a CPU bound task. You'll solve the
problem by lowering the priority of your worker thread but of course this
will slow down transfers.
Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html
The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be