... I should add with the proposed code change, you can now stop the reader and disconnect the socket without actually destroying the EReader object by doing the following:

'
The last line here is where I wait for my? own message processing thread to end.
This is now very clean and you can connect and disconnect from TWS without error and without having to destroy the EReader.