Thread::~Thread assert

I think you should add such an assert in the Thread’s destructor:

// If the thread is still running while the base class destructor is called, this probably mean that the run method is still using members of the deleted child class.
// So don't do that, call stopThread in your own destructor.

Yes, good idea! Thanks!