Hi, I think that the problem could be avoided by using a background worker thread.
BackgroundWorker Threads and Supporting Cancel[
^]
This would leave the UI on its original thread and all the work would be done in the background, that way the UI wont hang or be unresponsive.
Also, make sure you don't have any recursive calls to your constructor, because if it causes the form to close and then reopen, this could cause that issue also.