As I mentioned in the post I am learning how stuff works so I wanted a hands on approach.

Thank you BioPhysEngr for your helpful post and link.

Thank you Arjay for the explanation and clarification on why it happens and how it works. The code in the DLL changed a little compared to the file without the DLL since I am still a newbie to coding. From what you explained to me I am guessing the one without the DLL works because I force it to update the progress bar from within the intensive operation.

Well I want to say thanks again since I never even thought about Background worker. This has definitely helped me expand my knowledge