Realmente esta bien, el ProgressBar lo que hace es dar una ayuda visual al usuario, de esta manera no piensa que el programa "se ha colgado", más nada.
Hay muchas formas de usar un progress bar, con un Timer es una de ellas (cuando quieres que el usuario espere determinada cantidad de tiempo).
Otra por ejemplo es asociarlo a un valor contador dentro de un loop, pero requeriría que tengas o alguna pausa en el loop, o muchas sentencias bastante complejas para veas al progress bar correr y no pareciera que se mueve "instantáneamente".
Si esta respuesta te ayudo, no te olvides de marcarla como correcta 