Acelerar el bucle utilizando subprocesos múltiples en C # (Pregunta)

Imagina que tengo una función que pasa por un millón / billón de cuerdas y comprueba algo en ellas.

f.ex:

foreach (String item in ListOfStrings)
{
    result.add(CalculateSmth(item));
}

consume mucho tiempo, porque CalculateSmth es una función que consume mucho tiempo.

Quiero preguntar: ¿cómo integrar el multihilo en este proceso?

f.ex: Quiero iniciar 5 hilos y cada uno de ellos devuelve algunos resultados, y eso continúa hasta que la lista tiene elementos.

Tal vez alguien pueda mostrar algunos ejemplos o artículos.

Olvidé mencionar que lo necesito en .NET 2.0