Replace WorkerThread with EventDrivenThred