VB .NET: Barra de progresso

Jow

Membro
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.
 
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.
 
Back
Topo