1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB .NET: Barra de progresso

Discussão em 'Programação' iniciada por Jow, 17 de Abril de 2012. (Respostas: 1; Visualizações: 1451)

  1. Jow

    Jow

    Estou a criar um programa que usa uma barra de progresso, mas parece-me que a barra de progresso é mais lenta que o resto do programa...passo a explicar:

    o código é parecido com isto:
    Código:
    Dim x as long
    
    barra.Maximum = MAX '(em que MAX é o número de items em ColeccaoDeItems)
    For Each DadoItem In ColeccaoDeItems
        'Várias instruções, e depois:
        barra.Value = Value + 1
    Next
    
    Msgbox "Concluido."
    
    Acontece que a msgbox aparece-me antes de a barra de progresso chegar ao fim. Quero dizer, a barra chega ao fim, mas meia dúzia de segundos depois da mensagem aparecer. Será só um problema gráfico? É que a ordem das instruções está correcta... A ideia com que o utilizador fica é que é a barra de progresso em si que é lenta e isso não faz sentido.

    Mais tarde transponho o código exacto, mas no fundo não difere do exemplo...
    Posso, para já acrescentar que o código em causa é para calcular o tamanho dos ficheiros existentes numa pasta e a barra de progresso incrementa um valor para cada ficheiro processado.


    P.S.: Estou a trabalhar em VB 2008 Express, sob .NET framework 3.5 no Windows 7 - que, por sua vez vem instalado de origem, portanto nem coloco em causa questões de desempenho ou capacidade.
     
  2. bte

    bte Power Member

    Código:
    [URL="http://msdn.microsoft.com/en-us/library/system.windows.forms.application.doevents.aspx#Y0"]Application.DoEvents()[/URL]
    
    Esse link explica o porque do teu problema.
     

Partilhar esta Página