Определенно +1 на параллельных расширениях к .NET.Microsoft проделала большую работу по улучшению ThreadPool.Раньше у вас была одна глобальная очередь, которая обрабатывает все задачи, даже если они были созданы из рабочего потока.Теперь у них есть глобальная очередь без блокировки и локальные очереди для каждого рабочего потока.Это очень приятное улучшение.
Я не такой большой поклонник таких вещей, как Parallel.For, Parallel.Foreach и Parallel.Invoke (регионов), так как я считаю, что они должны быть чисто языковыми расширениями, а небиблиотеки классов.Очевидно, я понимаю, почему у нас есть этот промежуточный шаг, но для C # неизбежно получить улучшения языка для параллелизма, и в равной степени неизбежно, что нам придется вернуться и изменить наш код, чтобы воспользоваться этим: -)
В целом, если вы хотите создавать параллельные приложения в .NET, вы должны сами исследовать преимущества параллельных расширений.Я также думаю, что, учитывая то, что это довольно зарождающееся усилие со стороны Microsoft, вы должны очень активно рассказывать о том, что работает для вас, а что нет, независимо от того, что вы считаете своим уровнем мастерства в параллельности.Microsoft определенно слушает, но я не думаю, что есть много людей, которые еще используют Parallel Extensions.Вчера я был в VSLive Redmond и смотрел сессию на эту тему, и на меня произвела впечатление команда, работающая над этим.
Раскрытие информации: раньше я был директором по маркетингу в Visual Studio и сейчас нахожусь в стартапе Corensic , где мы создаем инструменты для обнаружения ошибок в параллельных приложениях.