Xceed FTP for .NET is a highly multi-threaded library that uses asynchronous operations on sockets and network streams to allow fast and robust execution. This results in most events being called from a different thread than the one that called the initiating method.
When building a GUI application using System.Windows.Forms, UI elements (controls and forms) must always be accessed from the main thread since they have thread-affinity for the main STA thread. This is done using Control.Invoke or Control.BeginInvoke.
To avoid the need to call Control.Invoke or Control.BeginInvoke, the SynchronizingObject property can be set to any object implementing the System.ComponentModel.ISynchronizeInvoke interface. In doing so, the library will take care of raising the events on the thread of that object.
In order to avoid cross-blocking calls, the library will call System.Windows.Forms.Application.DoEvents to pump the messages on the main thread when using blocking methods.
System.Object
Xceed.Ftp.FtpClient
Xceed.Ftp.AsyncFtpClient
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2