I was adding some complex usage logging in a data abstraction layer today, and I wanted to minimize its impact on performance. I was dreading having to manage worker threads, then I remembered the ThreadPool. It was so easy to shuffle off my logging to a managed worker thread. That saved me alot of trouble. One of those “pit of success” moments for sure.
(I would have rather linked directly to Rico's site, but Brad had a higher google rank.