In case my comments to the question are still unclear: as soon as you have more threads then the CPU cores (which is usually much, much less then the number of threads the system can possibly handle), adding each thread only degrades performance.
Threads are used mostly to implement scenarios where you need logically separate and almost independent scenarios of computing, not for improving performance.
[EDIT]
If you really need to measure some throughput, instead of performance counting, use the class
System.Diagnostics.Stopwatch
:
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx[
^].
The accuracy of this thing is very high. To get an idea, read the static properties
IsHighResolution
(it should return true on Windows) and
Frequency
:
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.ishighresolution.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.frequency.aspx[
^].
This is the most accurate method you can get.
—SA