Thank you for your reply.
There are two major reasons why I have done it so. First of all it's a GUI application and opening a file takes lot of time. If it wouldn't be threaded it would freeze the application for a while. The second reason is related to first one, if I don't wait until file is opened it exits the function and processes quit before they even started.
Method that you suggest works great. I've fordotted to put quotes around the "/c" parameter. It just closes shell windows after closing files.