You can't do it like that: The Fill method is a blocking call, which means it doesn't return until it is completed. As a result, it prevents you updates to the progress control from happening.
The best solution to this is to move the slow operation into a different thread, which allows your main (UI) thread to continue updating the display while the operation is going on. Have a look at the
BackgroundWorker class[
^] - it's designed for just this, and the link includes an example.