Progress Bar durante compactação de diretório
30/09/2008
0
Acompanhei uma video aula sobre compactação e descompactação de arquivos e diretório e gostaria de saber se alguém saberia como utilizar uma progress bar durante a execução desta ação de descompactação ou compactação. Acontece que durante este proceso o mouse fica com a ampulheta parecendo estar congelado o programa, quando na verdade ele está apenas fazendo seu trabalho.
Obrigado
Pestana Jr
Obrigado
Pestana Jr
Pestanajr
Curtir tópico
+ 0
Responder
Posts
03/10/2008
Codename.v
A progress bar funciona da seguinte maneira:
Vamos supor que você tenha um Form chamado FormExemplo e que este Form possua um componente ProgressBar e um componente Button chamados respectivamente pbExemplo e btnProcessar. Sendo assim, segue o código de exemplo.
Sendo assim, estamos incrementando a barra toda vez que contador for igual a 100 até que o mesmo chgue em 9999, ou seja, 100 x 100 = 10000. Concluímos então que foram realizados 100 passos de um em um até que fosse atingido o valor maximo da barra.
Para a sua compactação seria mais ou menos a mesma coisa só que você teria que guardar dentro da propriedade Maximum o tamanho do arquivo que está a ser compactado (se não me engano :oops:).
Seria uma boa se você postasse algum código.
Abraços!
Vamos supor que você tenha um Form chamado FormExemplo e que este Form possua um componente ProgressBar e um componente Button chamados respectivamente pbExemplo e btnProcessar. Sendo assim, segue o código de exemplo.
/* Evento Load do Form chamado para inicializar algumas propriedades da ProgressBar. */ private void FormExemplo_Load(object sender, EventArgs e) { /* Algumas das principais propriedades da ProgressBar são inicializadas aqui. A propriedade Minimum corresponde ao valor inicial da ProgressBar. Seu valor default é 0 que representa o inicio da barra. */ pbExemplo.Minimum = 0; /* A propriedade Maximum representa o número maximo de passos realizados pela ProgressBar. */ pbExemplo.Maximum = 100; /* Por ultimo a propriedade Step representa de quantos em quantos passos a ProgressBar sera incrementada. */ pbExemplo.Step = 1; } /* Evento de Click do botão btnProcessar que realiza um processo de contagem até 10000 incremento a ProgressBar. */ private void btnProcessar_Click(object sender, EventArgs e) { /* Loop for que realiza a contagem de 0 a 9999. */ for (int contador = 0; contador < 10000; contador++) { /* Se a variável contador mod 100 for igual a 2, ou seja, se ela for igual a 100, sera chamado o método PerformStep da ProgressBar que utiliza o valor da propriedade Step para incrementar a barra. Em seguida chamamos o método Sleep da classe Thread apenas para que o processo possa ser observado. Obs.: O método Sleep não tem nada a ver com a ProgressBar. */ if ((contador ¬ 100) == 2) { pbExemplo.PerformStep(); System.Threading.Thread.Sleep(40); } } }
Sendo assim, estamos incrementando a barra toda vez que contador for igual a 100 até que o mesmo chgue em 9999, ou seja, 100 x 100 = 10000. Concluímos então que foram realizados 100 passos de um em um até que fosse atingido o valor maximo da barra.
Para a sua compactação seria mais ou menos a mesma coisa só que você teria que guardar dentro da propriedade Maximum o tamanho do arquivo que está a ser compactado (se não me engano :oops:).
Seria uma boa se você postasse algum código.
Abraços!
Responder
Clique aqui para fazer login e interagir na Comunidade :)