use AutoResetEvent to prevent overflow threadpool use