Использовать индикатор выполнения, чтобы показать ход выполнения функции?

#vb.net

#vb.net

Вопрос:

У меня был небольшой проект на VB, и у меня возникла проблема, которая нуждается в вашей помощи.

В проекте в VS 2008 у меня была кнопка с именем «demo_btn», индикатор выполнения с именем «complete_pb», функция с именем «doSomething» и класс, подобный этому:

 Public Class Demo
    Private Sub demo_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles demo_btn.Click

        'the progress bar starts running when the button is clicked
        doSomething
        'the progress bar stops at 100% when the function doSomething is done

    End Sub
End Class
  

Все, что мне нужно, это чтобы индикатор выполнения запускался при нажатии кнопки и останавливался на 100%, когда функция doSomething выполнена. Проблема в том, что я не знаю, когда функция doSomething завершается.

Я погуглил, но не смог найти ничего, что мне подходит.

У вас, ребята, есть какие-нибудь идеи, чтобы мне помочь? большое спасибо.

Комментарии:

1. Да, вы знаете, когда она завершается, потому что элемент управления возвращается из doSomething back in в to demo_btn_Click . Это если вы не используете другой поток где-нибудь.

2. Проверьте пример о BackgroundWorker

3. A ProgressBar — это не волшебство. Все, что он делает, это отображает визуальное представление соотношения, и вам решать, предоставить это соотношение. Вы можете отображать прогресс, только если можете измерить прогресс. Можете ли вы измерить прогресс doSomething ? Если нет, то вы не сможете отобразить его прогресс. это было бы волшебно. Если вы можете измерить это, сделайте это и настройте соответствующим ProgressBar образом. В противном случае лучшее, что вы можете сделать, это установить Style Marquee значение, чтобы указать, что что-то происходит. Даже тогда вам нужно будет что-то сделать во вторичном потоке или ProgressBar не удается анимировать.

4. @Martheen, я думаю, что идеи о BackgroundWorker работают для меня 🙂