Basically the program works like this:
Main GUI just asks how many instances.
Each sub widget has controls to find network information.
The sub-widget creates a worker thread.
This thred creates 2 sub threads, sub thread 2 is connected (in the run method) to the DoThis widget and sub thread 1 is connected to sub thread 2
Sub Thread 1. Looks at the network and handles transmissions (parsing)and funnels commands to thread 2
Sub Thread 2. When commands are received it looks at the hard drive and finds the appropriate file. When found it emits a signal grabbed by the DoThis Widget.
The DoThis widget then creates its own thread and transmits the data.
The only time that the GUI hangs is when thread 2 is looking at the hard drive.
At no other point does the GUI hang (not even during network traffic or the DoThis widgets transmission)
Thank you for the help, sorry I can't show code.
Bookmarks