Ho cercato su internet ma non ho trovato, magari lo sai se è possibile chiamare tale funzione solo una volta (per leggere i byte ricevuti) perchè altrimenti viene eseguita continuamente.

Ho quindi provato questo codice che viene eseguita dalla funzione download:
codice:
request.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);
e che richiama
codice:
 private void DownloadProgressCallback(object sender, DownloadProgressChangedEventArgs e)
        {
            // Displays the operation identifier, and the transfer progress.
            Byte_Download = e.BytesReceived;
            textBox7.BeginInvoke(new UpdateTextCallback2(SetText2), new object[] { " " + Byte_Download });
        }
se stampo Byte_Download nella textbox7 viene visualizzato il valore se invece vado a leggerlo in download risulta = 0. Byte_Download è ovviamente una variabile globale. Dove sbaglio??