Timer object will be destructed and the thread visiting this->clear may cause read access violation.
I implemented a interrupt based Timer to kill thread at destructor, note that my implementation only supports one background thread per Timer object. And it uses boost::thread
https://github.com/cnSchwarzer/TimerCpp