Well have been doing some research and reading the SDK documentation and it looks like this can be done by using the backgroundthread.DoWork and the Background worker ProgressChanged event, using the ReportProgress Method you should be able to create a Progress bar with reports, you would have to create a small form and update the info within it, it seems that everytime you use the ReportProgress method it will fire the progress changed event, the issue I am having now is that you cannot pass args that interact with the UI(in this case doing a directcast from a found lyr file ,PackageChildlayer to .Table onto a background thread, I don't know how you would do this when you can only pass one argument at a time with the backgound threader... hmm any suggestions???