I have a progress dialog that monitors actions in a thread. The problem is that when it comes up...it takes over the program and allows nothing else to happen while it is monitoring the progress of my download. The UI locks up. The way I am updating the dialog is through messages posted by my worker thread to the main UI thread. Everytime my thread loops to get more data...it updates the dialog. Now I have done this the modeless way. How can I make it so that the user can just minimize this window and continue to do other things. Before I had the dialog..the file downloads were no problem...they were just in the background. Even if I put sleeps in the worker that posts the messages...still no control over the main UI. Can anyone help??