Внимательно следите за этими двумя сущностями. ThreadPool удобнее и логичнее в ряде случаев, но иногда может подложить свинью. А именно - когда функциональность, которая должна выполняться в одном, но параллельном потоке ВНЕЗАПНО раскладывается на кучу потоков.
Это реально может послужить причиной многих багов. В общем - контролируйте потоки в своем приложении. Thread - для более тонкого планирования многопоточности. ThreadPool - быстрое, но потенциально грабельное решение.