Индикатор прогресса VB.NET [дубликат]

Возможный дубликат:

Прогресс .NET не обновляется

Я построил класс индикатора выполнения, который показывает прогресс в моих циклах for. Вот's код для класса индикатора выполнения:

Public Class frmProgress
Private Sub frmProgress_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    progressBar.Minimum = 0
End Sub

Public Sub ProgressBarSetup(ByRef Maximum As Integer, ByRef Title As String)
    progressBar.Maximum = Maximum
    progressBar.Value = 0
    Me.Text = Title
    Me.Show()
End Sub

Public Sub IncProg()
    progressBar.Value += 1
    Application.DoEvents()

    If progressBar.Value = progressBar.Maximum Then
        Me.Close()
    End If
End Sub
End Class

Вот'Как бы я использовал его в цикле for:

Dim pb As New ProgressBar
pb.ProgressBarSetup(5000, "Test")

For i As Integer = 0 To 5000 - 1
      pb.IncProg()
Next

Проблема является визуальной проблемой. Он завершает до 70-85% от всего индикатора выполнения и затем закрывается. При закрытии значение индикатора выполнения и максимальные значения равны, но столбец заполнен только примерно на три четверти его ».длина.

Я попытался использовать progressBar.Refresh () вместо Application.DoEvents (), но это сильно замедляет прогресс и все равно дает мне тот же результат.

Есть ли другие способы добиться лучшего визуально привлекательного индикатора выполнения?

Ответы на вопрос(1)

Ваш ответ на вопрос