Вызов функции из метода в одном классе в другом классе - PullRequest
0 голосов
/ 09 мая 2019

Здравствуйте, у меня очень простая функция для загрузки файлов с FTP. Выглядит так:

//Download files from FTP, return true of false if succed
        public static bool DownloadFileFromFTP( string ip, string RemoteFilePath, string LocalFilePath, string username, string password)
        {
            try
            {
                FtpClient client = new FtpClient(ip);
                client.Credentials = new NetworkCredential(username, password);
                client.Connect();

                ProgressBar progressBar;
                progressBar = new ProgressBar();
                Progress<double> progress = new Progress<double>(x => {
                    if (x > 0)
                    {
                        progressBar.Report((double)x / 100);
                    }
                });

                bool succes = client.DownloadFile(LocalFilePath, RemoteFilePath, FtpLocalExists.Overwrite, FluentFTP.FtpVerify.Retry, progress);
                if(succes == true)
                {
                    succes = true;
                }
                else
                {
                    succes = false;
                }
                client.Disconnect();
                progressBar.Dispose();
                return succes;

            }
            catch(Exception e)
            {
                MessageBox.Show(e.ToString());
                return false;
            }

        }

И этот метод находится в одном классе, и я вызываю его в другом классе, например:

Functions_General.DownloadFileFromFTP("192.168.240.86", "Ultra_Script/path", @"C:\Windows\Temp\Adobe_Reader.exe", "username", "password");

Все работает как положено. Но у самой функции есть прогрессбар внутри нее и ее удаление после завершения загрузки с этим:

progressBar.Dispose();

Но возникает проблема, которая мне нужна, чтобы избавиться от нее в классе, где я вызываю метод. Есть ли вариант, как мне этого добиться?

Мне нужно иметь 3 синхронных индикатора выполнения и утилизировать их после завершения всех трех загрузок.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2019

Вы можете сделать ProgressBar статическим полем, чтобы иметь к нему доступ из любого места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...