A user must query a large database for information repeatedly. This is done asynchronously. Only one query will be running at a time.
I did not create a new thread for each query as the code would be less clean, less maintable, etc.
I did not use ThreadPool.QueueUserWorkItem as this will tie up a ThreadPool thread for multiple seconds, and I'd rather not increase the minimum ThreadPool threads via ThreadPool.SetMinThreads as this won't be used by every user.
I solved this problem by creating my own single thread "ThreadPool" which just processes items. No new threads created, no ThreadPool thread occupied.
Should I have avoided the ThreadPool? Should I take a different approach?
Edit: I am limited to .net 3.5, and Visual Studio 2010.