Исправить программу на C# WinForm

Константин6 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
01.02.2019

ТЗ. 

Есть программа часть кода в ней скачивает файлы с фтп.

1.Нужно исправить зависание программы во время скачивания с FTP

2.Добавить прогрессбар скачивания (скорость скачивания и сам прогрессбар(общий прогресс в виде % или размера))

3.В данный момент код скачивает все файлы из папки с ФТП и пихает их в папку на компьютере. Нужно чтобы при скачивание файлов программа смотрела на изменения фалов на фтп и делала копию папки на компьютере. Тоесть если есть удаленный файл на фтп его удалить и на клиенте. Если файл на фтп был изменен  его нужно скачать. Если файл такой же как и на компьютере не скачивать его