Да, они фоновые, но, например, если у вас есть приложение, в котором вы используете ThreadPool для какой-то множественной загрузки или чего-то еще, и вы хотите остановить их, как вы остановитесь? мое предложение будет:
выходной поток как можно скорее, f.ex
bool stop = false;
void doDownloadWork(object s)
{
if (!stop)
{
DownloadLink((String)s, location);
}
}
и если вы установите stop = true, вторые (в данный момент в очереди) потоки автоматически завершаются после того, как потоки очереди завершат его обработку.