Sounds like you have the UI thread locked up while its processing. Depending on how you are doing the actual work and whether or not you want the user to be able to interact with the UI while it is working or not, changes the solution. Although generally speaking you can use Application.DoEvents to force any held process to run, like the painting of controls. So everytime you update the progressbar or label try using Application.DoEvents right after it. Otherwise post your code for more help.