Remove work from the queue. Once all work has been removed, and it has no events to run, it can stop.
virtual void removeWork() = 0