Параллельное программирование в .NET. Руководство по документации
Статья
Многие персональные компьютеры и рабочие станции имеют несколько ядер ЦП, которые позволяют одновременно выполнять несколько потоков. Чтобы воспользоваться преимуществами оборудования, можно параллелизовать код для распределения работы между несколькими процессорами.
В прошлом распараллеливание требовало управления потоками и взаимоблокировками на низком уровне. Visual Studio и .NET обеспечивают расширенную поддержку параллельного программирования, предоставляя среду выполнения, типы библиотек классов и средства диагностики. Эти возможности, которые впервые появились в .NET Framework 4, упрощают параллельную разработку. Это позволяет разработчикам писать эффективный, детализированный и масштабируемый параллельный код с помощью естественных выразительных средств без необходимости непосредственной работы с потоками или пулом потоков.
На рисунке ниже представлен общий обзор архитектуры параллельного программирования в .NET.
Предоставляет документацию для класса System.Threading.Tasks.Parallel, который содержит параллельные версии цикла For, цикла ForEach; а также для класса System.Threading.Tasks.Task, который предоставляет предпочитаемый способ для выражения асинхронных операций.
Предоставляет краткие общие сведения по лямбда выражениям в C# и Visual Basic, показывает, как они используются в PLINQ и в библиотеке параллельных задач.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Вы можете изучить библиотеку параллельных задач (TPL) — набор общедоступных типов и интерфейсов API, упрощающий процесс добавления параллелизма в приложения .NET.
Сведения о том, как библиотека параллельных задач (TPL) поддерживает параллелизм данных для одновременного выполнения одной и той же операции для элементов в исходной коллекции или массиве в .NET.
Ознакомьтесь с рекомендациями по работе с управляемыми потоками в .NET. Реализуйте сложные ситуации, такие как координация работы нескольких потоков или обработка потоков, вызывающих блокировку.