Can't you just do enqueue and if Count > 0, do the ThreadPool?