Then, I am probably doing something wrong. Without the sleep() function, the user thread doesnt seem to be working.
I don't think that should occur. The worker thread is mainly doing fileio and won't be doing any extensive computation.
The code itself is kind of ugly with no error checking or exception handling. But if you want, PM me your email address and I'll send an email to you with the test program attached. The test program has a modal progress dialog, but uses a CEdit instead of a CProgressCtrl, and the files themselves are text files so it reads line by line and updates the dialog and view each time a line is read.