Поделиться через


Объекты и функциональные возможности работы с потоками

Среда .NET Framework содержит объекты, которые могут помочь в создании и управлении многопоточными приложениями. Управляемые потоки представлены классом Thread. Класс ThreadPool предоставляет возможность простого создания и управления многопоточными фоновыми задачами. Класс BackgroundWorker делает то же самое для задач, которые взаимодействуют с пользовательским интерфейсом. Класс Timer выполняет фоновые задачи через определенные интервалы времени.

Кроме того, существует ряд классов, которые синхронизируют действия потоков, включая классы Semaphore и EventWaitHandle, появившиеся в .NET Framework версии 2.0. Сравнение возможностей этих классов приведено в разделе Обзор примитивов синхронизации.

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

  • Пул управляемых потоков
    Описание класса ThreadPool , позволяющего выполнить задачу без вмешательства пользователя.

  • таймеры
    Описание способов применения объекта Timer для указания времени вызова делегата.

  • Мониторы
    Описание способов применения класса Monitor для синхронизации доступа к элементу и способов создания собственных типов управления потоками.

  • Дескрипторы ожидания
    Описание класса WaitHandle — абстрактного базового класса для дескрипторов ожидания события, мьютексов и семафоров, который включает ожидание для нескольких событий синхронизации.

  • EventWaitHandle, AutoResetEvent, CountdownEvent и ManualResetEvent
    Описание управляемых дескрипторов ожидания событий, которые используются для синхронизации действий потоков путем отправки и получения сигналов.

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

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

  • Блокировки чтения и записи
    Определение блокировки, реализующей семантики одного средства записи и нескольких средств чтения.

  • Классы Semaphore и SemaphoreSlim
    Описание объектов Semaphore и объяснение способа использования этих объектов для управления доступом ограниченных ресурсов.

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

  • Барьер (.NET Framework)
    Описывает объекты Barrier, реализующие шаблон барьера для координации потоков в поэтапных операциях.

  • SpinLock
    Описывает класс SpinLock, облегченную альтернативу классу Monitor для определенных низкоуровневых сценариев.

  • Токены отмены
    Описывает CancellationToken, являющийся облегченным объектом, который можно использовать для реализации согласованной отмены между потоками.

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

Ссылка

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

  • BackgroundWorker
    Включение фоновых задач, взаимодействующих с пользовательским интерфейсом, работая с событиями, которые были созданы в потоке пользовательского интерфейса.

Связанные подразделы

  • Асинхронный файловый ввод-вывод
    Описание использования группы потоков портами асинхронного завершения операций ввода-вывода для задания обработки только после завершения этих операций.

  • Библиотека параллельных задач
    Описывает рекомендуемый подход для многопоточного программирования в .NET Framework 4 и последующих версиях.