ここにガイドがあります
基本的に、ここにある例ではThreadを使い、後はTaskやThreadPoolでいいです

http://msdn.microsoft.com/ja-jp/library/vstudio/6kac2kdh.aspx
>スレッド処理とアプリケーションのデザイン

>一般に、他のスレッドをブロックしない比較的短いタスクを特定のスケジューリングを指定せずに実行する場合、
>複数のスレッドを処理する最も簡単な方法は、ThreadPool クラスを使用することです。
> ただし、次に示すように、独自のスレッドを作成した方がよい場合も多くあります。

>タスクに特定の優先順位を設定する必要がある場合。
>タスクが長時間実行して、ほかのタスクをブロックする可能性がある場合。
>スレッドをシングルスレッド アパートメント内に配置する必要がある場合
>(すべての ThreadPool スレッドがマルチスレッド アパートメント内にある場合)。
>スレッドに関連付けられた、確立された ID が必要な場合。
>たとえば、そのスレッドをアボートまたは中断したり、名前で探索したりするには、専用のスレッドを使用する必要があります。
>ユーザー インターフェイスと対話するバックグラウンド スレッドを実行する必要がある場合、
>.NET Framework Version 2.0 では、イベントを使用し、ユーザー インターフェイス スレッドへの
>スレッド間マーシャリングによって通信する BackgroundWorker コンポーネントを利用できます。

そもそも、ThreadにしろTaskにしろ、コアな機能はデリゲートを実行することだけです
マネージャー系の機能は単なる付加機能です
できることそのものは大差ないんです
より適しているかの問題で、適していない方を使用する理由は、あなたがマゾヒストでない限り存在しません