Acelerar o loop usando multithreading em c # (pergunta)

Imagine que eu tenha uma função que passe por um milhão / bilhão de strings e cheque smth neles.

f.ex:

<code>foreach (String item in ListOfStrings)
{
    result.add(CalculateSmth(item));
}
</code>

consome muito tempo, porque CalculateSmth é uma função muito demorada.

Eu quero perguntar: como integrar o multithreading nesse processo?

f.ex: Eu quero ativar 5 threads e cada um deles retorna alguns resultados, e isso continua até que a lista tenha itens.

Talvez alguém possa mostrar alguns exemplos ou artigos ..

Esqueci de mencionar que preciso disso no .NET 2.0

questionAnswers(6)

yourAnswerToTheQuestion