Scusa. Eccovi il source:

codice:
List<string> packages = new List<string>();

...

        private void Main_Load(object sender, EventArgs e)
        {
            getPackagesInfoFromServer();
            foreach(string package in packages){
                ->Qui sorge il problema. Perchè se faccio cosi cerca di scaricarne tutti in sieme ma io ne voglio 1 alla volta:
            WebClient downloader = new WebClient();
            downloader.Proxy = null;
            downloader.DownloadFileAsync(blablabla);
            }
        }
Ovviamente la funzione getPackagesInfoFromServer serve per aggiungere in packages i vari files da scaricare.