getting error three parallel connections and uses them to download remote file tree to local folder in parallel.u sing wnscp c#.net

Trying to execute the below code for download the remote files using winscp .net but it is showing attached error.enter image description here

please find the below code which i am trying to excetuing.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using WinSCP;

namespace winscptask
{    
    class Program
    {
        public static int Main()
        {
            try
            {
                // Setup session options
                SessionOptions sessionOptions = new SessionOptions
                {
                     Protocol = Protocol.Ftp,
                    HostName = "xxxxxxxx",
                    UserName = "xxxxxxx",
                    Password = "xxxxxxxx",
                };

                const string localPath = @"C:\Users\UX012414\TRdatafeeds\";
                const string remotePath = "/zjpw/t*.log";
                const int batches = 3;    
                DateTime started = DateTime.Now;
                int count = 0;
                Int64 bytes = 0;

                using (Session session = new Session())
                {
                    Console.WriteLine("Connecting...");
                    session.Open(sessionOptions);    
                    Console.WriteLine("Starting files enumeration...");
                    IEnumerable<RemoteFileInfo> files = session.EnumerateRemoteFiles(remotePath, null, EnumerationOptions.AllDirectories);
                    IEnumerator<RemoteFileInfo> filesEnumerator = files.GetEnumerator();

                    List<Task> tasks = new List<Task>();

                    for (int i = 1; i <= batches; i++)
                    {
                        int no = i;

                        Task task = new Task(() =>
                        {
                            using (Session downloadSession = new Session())
                            {
                                Console.WriteLine("Starting download {0}...", no);
                                downloadSession.Open(sessionOptions);

                                while (true)
                                {
                                    string remoteFilePath;
                                    lock (filesEnumerator)
                                    {
                                        if (!filesEnumerator.MoveNext())
                                        {
                                            break;
                                        }

                                        RemoteFileInfo file = filesEnumerator.Current;
                                        bytes += file.Length;
                                        count++;
                                        remoteFilePath = file.FullName;
                                    }

                                    string localFilePath = RemotePath.TranslateRemotePathToLocal(remoteFilePath, remotePath, localPath);
                                    Console.WriteLine("Downloading {0} to {1} in {2}...", remoteFilePath, localFilePath, no);
                                    Directory.CreateDirectory(Path.GetDirectoryName(localFilePath));
                                    downloadSession.GetFiles(RemotePath.EscapeFileMask(remoteFilePath), localFilePath).Check();
                                }

                                Console.WriteLine("Download {0} done", no);
                            }

                        });

                        tasks.Add(task);
                        task.Start();
                    }

                    Console.WriteLine("Waiting for downloads to complete...");
                    Task.WaitAll(tasks.ToArray());
                }

                Console.WriteLine("Done");

                DateTime ended = DateTime.Now;
                Console.WriteLine("Took {0}", (ended - started));
                Console.WriteLine("Downloaded {0} files, totaling {1:N0} bytes", count, bytes);

                return 0;
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e);
                return 1;
            }    
        }             
    }
}

/zjpw is a folder. Find the ftphost and folder path(ftp://xxxxxxxx/zjpw/temp.log) I am trying to download the logfiles that start with "T".