<p>Imagine I have an function which goes through one million/billion strings and checks smth in them.</p>

<p>f.ex:</p>

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

<p>it consumes lot's of time, because CalculateSmth is very time consuming function.</p>

<p>I want to ask: how to integrate multithreading in this kinda process?</p>

<p>f.ex: I want to fire-up 5 threads and each of them returns some results, and thats goes-on till the list has items.</p>

<p>Maybe anyone can show some examples or articles.. </p>

<p>Forgot to mention I need it in .NET 2.0</p>

You could try the
Parallel extensions
(part of .NET 4.0)
These allow you to write something like:
```
```
Parallel.Foreach (ListOfStrings, (item) => 
    result.add(CalculateSmth(item));
);
```
```
Of course result.add would need to be thread safe.