In my experience, that has nothing wrong about it. But you must know for sure what you are doing. In multi-threading environments you MUST synchronize variable access. If you are unsure about your synchronization skills, then exchange the bool control variable with a synchronization object.
Thanks, my case is quite simple, not necessary for synchronization yet, but now I think it's actually not about the thread, it's about design something like
class stoppable {}
or
class timeout_task{}