Static Void Main ( String [] ARGs)
{
Int [] Arr = New Int [ 1000 ];
For ( Int I = 0 ; I <arr. length; I ++)
{
Arr [I] = I;
}
// Sequential foreach
Int B = 0 ;
Stopwatch stopwatch = New Stopwatch ();
Stopwatch. Start ();
Foreach ( VaR X In ARR)
{
B = B + X;
System. Threading. thread. Sleep ( 1 );
// Console. writeline (X );
}
Stopwatch. Stop ();
Console. writeline ( " Sequential Loop Time in milliseconds: {0}, value of B: {1} " , Stopwatch. elapsedmilliseconds, B );
// Currency foreach
B = 0 ;
Stopwatch. Reset ();
Stopwatch. Start ();
Console. writeline ( " ------------------- " );
Parallel. foreach (ARR,
(X) =>
{
// Lock
/*
var T = "";
lock (t) {
B = B + X;
}< br> */
Interlocked. Add ( Ref B, X );
System. Threading. thread. Sleep ( 1 );
// Console. writeline (X );
}
);
Stopwatch. Stop ();
Console. writeline ( " Concurrency Loop Time in milliseconds: {0}, value of B: {1} " , Stopwatch. elapsedmilliseconds, B );
Console. Read ();
}
Http://msdn.microsoft.com/en-us/library/dd460717.aspx
Http://msdn.microsoft.com/en-us/library/ff963552.aspx