Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Marcondes

Fila dinâmica de Downloads

Recommended Posts

Olá pessoal.

 

Tenho uma dúvida que não sei como resolver ainda:

 

Estou fazendo uma aplicação que vai baixar arquivos em certos momentos.

Rodando no background de minha tela principal há uma Thread que fica constantemente buscando por novos arquivos que serão disponibilizados por um serviço web.

Quando um ou mais arquivos são encontrados, outra Thread precisaria começar a fazer o download desses arquivos.

A minha dúvida é como eu faço para criar uma fila dinâmica de arquivos para baixar.

Por exemplo:

A thread de busca encontrou um novo arquivo que possui 100 Mb e então (isso teria que ser feito ainda) informaria a outra Thread para baixar esse arquivo.

Só que bem no meio do download, outro arquivo foi encontrado, com 200Mb. Preciso fazer com que esse arquivo fique na fila de download.

Alguém tem uma idéia de como fazer algo nesse sentido?

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você vai usar muitos BackGroundWorkers, você poderia fazer o Bgw que busca atualizações atrelado a um timer que executa o evento de busca, e em outro evento chamado "ProcessCompleted" você jogaria para um Array os endereços dos arquivos de download, ai você poderia controlar quantos arquivos tem o array e, consequentemente, a fila de downloads (Você até poderia criar um bidimensional para adicionar outras informações do tipo nome e tamanho, criando propriedades que retornariam essas informações específicas).

 

Para fazer o download da fila de downloads o que você precisaria fazer é usar o mesmo timer que checa atualizações ver se há arquivos no array, se houver ele inicia outro backgroundworker que faz os downloads de todos os arquivos da lista, um por um, e se for encontrado mais arquivos na lista de download eles são adicionados ao final do array, quando todos os downloads forem concluídos o array é limpo para começar outra operação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.