Come sull'utilizzo HttpRequest di classe, con il metodo AddRange chiamato. Questo dovrebbe avere un'intestazione con offset da cui iniziare il download.
var request = HttpWebRequest.Create(new Uri("http://www.myurl.com/hugefile"));
request.Method = "GET";
request.AddRange(offset_for_this_thread); // I assume you have calculated this
// before firing threads
Stream reponseStream = request.GetResponse().GetResponseStream();
È quindi possibile leggere dal'responseStream' i dati e si fondono con gli altri thread una volta che si è fatto.
Tuttavia, come notato da tutti gli altri, questo porterà valore solo se si hanno due adattatori, entrambi collegati a Internet, e si ha una sorta di bilanciamento della larghezza di banda tra questi adattatori ... In caso contrario Windows probabilmente devierà tutto al stessa connessione.
La connessione di rete è completamente utilizzata? In tal caso, non è possibile accelerare il download con più thread. –
Questo non aiuta. Questo aggiungerà solo un sovraccarico. –
Perché supporre che è il lato client/larghezza di banda che è il problema? Può essere d'aiuto se il web server utilizza una sorta di limitazione che non controlla se più connessioni provengono dallo stesso client. – jgauffin