Основы управляемой многопоточности

Первые пять статей этого раздела предназначены для определения того, когда следует использовать управляемые потоки и объяснить некоторые основные функции. Сведения о классах, которые предоставляют дополнительные функции, см. в разделе "Объекты потоков и функции" и"Общие сведения о примитивах синхронизации".

В .NET 9 и C# 13 или более поздней версии используйте выделенный System.Threading.Lock экземпляр с инструкцией блокировки C#. Такой подход повышает производительность и уменьшает ошибки при блокировке неправильного объекта. В Visual Basic продолжайте использовать SyncLock с выделенным частным ссылочным типом.

В остальных статьях этого раздела рассматриваются дополнительные разделы, включая взаимодействие управляемого потока с операционной системой Windows.

Замечание

Библиотека параллельных задач и PLINQ предоставляют API для параллелизма задач и данных в многопоточных программах. Дополнительные сведения см. в разделе "Параллельное программирование".

В этом разделе

Потоки и работа с потоками
Обсуждаются преимущества и недостатки использования нескольких потоков, а также описываются сценарии, в которых можно создавать потоки или использовать потоки из пула потоков.

Исключения в управляемых потоках
Описывает поведение необработанных исключений в потоках для разных версий .NET, в частности ситуаций, в которых они приводят к прекращению работы приложения.

Синхронизация данных для многопоточных операций
Описывает стратегии синхронизации данных в классах, которые будут использоваться с несколькими потоками.

Передний план и фоновые потоки
Объясняет различия между основными и фоновыми потоками.

Управляемые и неуправляемые потоки в Windows
Обсуждает связь между управляемыми и неуправляемыми потоками, перечисляет управляемые эквиваленты для API потоков Windows и обсуждает взаимодействие квартир COM и управляемых потоков.

Локальное хранилище потоков: Thread-Relative статические поля и слоты данных
Описывает механизмы хранения для потока.

Справка

Thread Содержит справочную документацию для класса Thread , представляющего управляемый поток, независимо от того, был ли он получен из неуправляемого кода или был создан в управляемом приложении.

BackgroundWorker Предоставляет безопасный способ реализации многопоточных операций в сочетании с объектами пользовательского интерфейса.

обзор примитивов синхронизации
Описывает управляемые классы, используемые для синхронизации действий нескольких потоков.

Лучшие практики управления потоками
Описывает распространенные проблемы многопоточности и стратегии их предотвращения.

Параллельное программирование
Описывает параллельную библиотеку задач и PLINQ, что значительно упрощает работу по созданию асинхронных и многопоточных приложений .NET.

Библиотека System.Threading.Channels
Описывает библиотеку System.Threading.Channel, которая предоставляет набор структур данных синхронизации для передачи данных между производителями и потребителями асинхронно.