Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
desculpa pela pergunta mas sou bem novo em C#.net. :unsure:
Já li um pouco de threads no C#.net mas ainda sim não consegui fazer funcionar... <_<
Acontece assim:
Eu possuo uma lista (List<string>) de URLs para baixar.
E quero baixar TODAS simultaneamente.
Durante o download, eu quero preencher um campo ProgressBar com o valor do percentual total dos downloads.
Para fazer os downloads eu possuo uma classe Downloader, que gerencia cada Download.
CODE
class Downloader
{
private string url;
private System.Windows.Forms.ProgressBar progresso;
public void setUrl(string url)
{
this.url = url;
}
public void setProgresso(System.Windows.Forms.ProgressBar progresso)
{
this.progresso = progresso;
}
public void baixar()
{
char[] partir = { ' ' };
int BUFFER = 1024;
System.Net.WebClient Client = new System.Net.WebClient();
Stream strm = Client.OpenRead(url);
StreamReader sr = new StreamReader(strm);
int index = 0;
int leitura;
char[] dados = new char[bUFFER];
do
{
leitura = sr.Read(dados, index, BUFFER);
//progresso.Value = progresso.Value + 1;
}
while (leitura != 0);
strm.Close();
}
}
A classe principal possui um método assim:
CODE
private void baixarArquivos(List<string> arquivosFaltantes)
{
char[] partir = { ' ' };
Downloader d = new Downloader();
d.setProgresso(this.progresso);
ThreadStart ts = new ThreadStart(d.baixar);
for (int i = 0; i < arquivosFaltantes.Count; i++)
{
// Na posicao 0 -> numero do download (para verificar se ha atualizacao)
// Na posicao 1 -> tipo de download (para controle interno)
// Na posicao 2 -> nome do arquivo para download (apenas o nome do arquivo)
d.setUrl("[http://www.url_teste.com.br/"](http://www.url_teste.com.br/) + (arquivosFaltantes*.Split(partir))[2]);*
Thread t = new Thread(ts);
t.IsBackground = true;
t.Start();
}
}
Mas estou com dois problemas:
http://forum.imasters.com.br/public/style_emoticons/default/excl.gif - Como saber o tamanho do arquivo a ser baixado, no servidor, para calcular os percentuais?
http://forum.imasters.com.br/public/style_emoticons/default/excl.gif - Como ir preenchendo o ProgressBar na thread principal, a partir das outras Threads?
Agradeço desde já, qualquer ajuda.
>.<
Carregando comentários...