There are other ways to take advantage of parallel programming, such as LINQ expressions. We could rewrite the previous example as a LINQ expression and it might look something like the following:
passwords.AsParallel().ForAll(p => { var pbkdf2 = new Rfc2898DeriveBytes(p, 256, 10000); Convert.ToBase64String(pbkdf2.GetBytes(256)); });
You can enable these features with the AsParallel() method. The ForAll() method has the same purpose as the loops in previous examples and is useful if the order is unimportant. If ordering is important, then there is an AsOrdered() method that can help solve this. However, this can reduce the performance gains due to the extra processing involved.
This example performs similarly to the previous ...