Как лучше, последовательно или параллельно
Есть в .NET Framework 4.0 новое пространство имен System.Threading.Tasks , которое многие незаслуженно обходят своим вниманием. Там - уйма полезных классов, которые позволяют делать просто сложные вещи. Например класс Parallel . Простейшее применение - позволяет автоматически разбить кусок работы на части и выполнить в разных потоках, если это имеет смысл. Да-да! Класс сам определит количество ядер в системе и, например, количество итераций в цикле, который надо выполнить и выполнит его в оптимальном количестве потоков. Посмотрим насколько сложно его использовать: using System ; using System . Threading . Tasks ; using System . Threading ; namespace ConsoleApplication2 { class Program { static void Main ( string [ ] args ) { // sequential DateTime start = DateTime . Now ; for ( int i = 0 ; i < 10000 ; i + + ) { EmulateSomeJob ( ) ; } ; // parallel DateTime start2 = DateTime . Now ; Parallel . For ( 0 , 9999 , i = > { ...