<p>I have been trying to learn multi-threaded programming in C# and I am confused about when it is best to use a thread pool vs. create my own threads. One book recommends using a thread pool for small tasks only (whatever that means), but I can't seem to find any real guidelines.</p>
<p>What are some pros and cons of thread pools vs creating my own threads? And what are some example use cases for each?</p>

Thread pools are great when you have more tasks to process than available threads.
You can add all the tasks to a thread pool and specify the maximum number of threads that can run at a certain time.
Check out
this
page on MSDN:
http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx