Another implementation of a thread pool.

You should be using Task and ThreadUtilities instead, if you can.