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


System.Threading Пространство имен

Предоставляет классы и интерфейсы для многопоточного программирования. Помимо классов синхронизации работы потоков и доступа к данным (Mutex, Monitor, Interlocked, AutoResetEvent и т. д.), это пространство имен содержит класс ThreadPool, позволяющий использовать пул предоставляемых системой потоков, и класс Timer, выполняющий методы обратного вызова в потоках пула потоков.

Классы

AbandonedMutexException

Исключение вызывается, когда некоторый поток получает объект Mutex, брошенный другим потоком путем выхода без высвобождения.

AsyncLocal<T>

Представляет внешние данные, локальные для данного асинхронного потока управления, такие как асинхронный метод.

AutoResetEvent

Представляет событие синхронизации потоков, которое при получении сигнала освобождает один поток ожидания, а затем автоматически сбрасывается. Этот класс не наследуется.

Barrier

Позволяет нескольким задачам параллельно работать с алгоритмом, используя несколько фаз.

BarrierPostPhaseException

Исключение, которое возникает при сбое действия барьера Barrier, выполняемого в конце фазы.

CancellationTokenSource

Отправляет токену CancellationToken сигнал отмены.

CompressedStack

Обеспечивает методы для установки и инициализации сжатого стека в текущем потоке. Этот класс не наследуется.

CountdownEvent

Представляет примитив синхронизации, которому отправляется сигнал при достижении счетчиком нуля.

EventWaitHandle

Представляет событие синхронизации потока.

EventWaitHandleAcl

Предоставляет метод расширения Windows для создания объектов EventWaitHandle с определенными свойствами безопасности списка управления доступом (ACL).

ExecutionContext

Управляет контекстом выполнения для текущего потока. Этот класс не наследуется.

HostExecutionContext

Инкапсулирует и распространяет контекст выполнения хоста по потокам.

HostExecutionContextManager

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

Interlocked

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

LazyInitializer

Обеспечивает процедуры инициализации адаптирующегося типа.

Lock

Предоставляет механизм для достижения взаимного исключения в областях кода между разными потоками.

LockRecursionException

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

ManualResetEvent

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

ManualResetEventSlim

Представляет событие синхронизации потока, которое при получении сигнала необходимо сбросить вручную. Этот класс является упрощенной альтернативой ManualResetEvent.

Monitor

Предоставляет механизм для синхронизации доступа к объектам.

Mutex

Примитив синхронизации, который также может использоваться в межпроцессной синхронизации.

MutexAcl

Предоставляет метод расширения Windows для создания объектов Mutex с определенными свойствами безопасности списка управления доступом (ACL).

Overlapped

Предоставляет управляемое представление структуры OVERLAPPED Win32, включая методы для передачи данных из экземпляра Overlapped в структуру NativeOverlapped.

PeriodicTimer

Предоставляет периодический таймер, который позволяет асинхронно ожидать тактов таймера.

PreAllocatedOverlapped

Представляет предварительно выделенное состояние для собственных перекрывающихся операций ввода-вывода.

ReaderWriterLock

Определяет блокировку, которая поддерживает один пишущий поток и несколько читающих.

ReaderWriterLockSlim

Представляет блокировку, используемую для управления доступом к ресурсу, которая позволяет нескольким потокам производить считывание или получать монопольный доступ на запись.

RegisteredWaitHandle

Представляет дескриптор, который регистрируется при вызове метода RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). Этот класс не наследуется.

Semaphore

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

SemaphoreAcl

Предоставляет метод расширения Windows для создания объектов Semaphore с определенными свойствами безопасности списка управления доступом (ACL).

SemaphoreFullException

Это исключение создается при вызове метода Release семафора, счетчик которого уже имеет максимальное значение.

SemaphoreSlim

Представляет упрощенную альтернативу семафору Semaphore, ограничивающему количество потоков, которые могут параллельно обращаться к ресурсу или пулу ресурсов.

SynchronizationContext

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

SynchronizationLockException

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

Thread

Создает и контролирует поток, задает приоритет и возвращает статус.

ThreadAbortException

Исключение, выдаваемое при вызове метода Abort(Object). Этот класс не наследуется.

ThreadExceptionEventArgs

Предоставляет данные для события ThreadException.

ThreadingAclExtensions

Предоставляет методы расширения, специфичные для Windows, для управления дескрипторами безопасности списков управления доступом (ACL) для EventWaitHandle, Mutex и Semaphore.

ThreadInterruptedException

Исключение, которое выдается при прерывании работы потока Thread, находящегося в состоянии ожидания.

ThreadLocal<T>

Предоставляет хранилище для данных, локальных для потока.

ThreadPool

Предоставляет пул потоков, который можно использовать для выполнения задач, отправки рабочих элементов, обработки асинхронного ввода-вывода, ожидания от имени других потоков и обработки таймеров.

ThreadPoolBoundHandle

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

ThreadStartException

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

ThreadStateException

Исключение, которое выдается, когда объект Thread является неправильным свойством ThreadState для вызова метода.

Timeout

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

Timer

Предоставляет механизм для выполнения метода в потоке пула с заданными интервалами. Этот класс не наследуется.

Volatile

Содержит методы для выполнения операций энергонезависимой памяти.

WaitHandle

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

WaitHandleCannotBeOpenedException

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

WaitHandleExtensions

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

Структуры

AsyncFlowControl

Обеспечивает функциональность для восстановления миграции или перемещения контекста выполнения между потоками.

AsyncLocalValueChangedArgs<T>

Класс, предоставляющий сведения об изменениях данных экземплярам AsyncLocal<T>, которые зарегистрированы для получения уведомлений об изменениях.

CancellationToken

Распространяет уведомление о том, что операции следует отменить.

CancellationTokenRegistration

Представляет делегат обратного вызова, зарегистрированный с объектом CancellationToken.

Lock.Scope

Представляет объект , Lock который мог быть введен.

LockCookie

Определяет блокировку, которая реализует семантику "один записывающий / много читающих". Это тип значения.

NativeOverlapped

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

SpinLock

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

SpinWait

Предоставляет поддержку ожидания на основе прокруток.

Интерфейсы

IThreadPoolWorkItem

Представляет рабочий элемент, который может быть выполнен пулом ThreadPool.

ITimer

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

Перечисления

ApartmentState

Задает апартаментное состояние потока Thread.

EventResetMode

Указывает, сбрасывается ли EventWaitHandle автоматически или вручную после получения сигнала.

LazyThreadSafetyMode

Определяет, как экземпляр Lazy<T> синхронизирует доступ из нескольких потоков.

LockRecursionPolicy

Указывает, можно ли несколько раз войти в блокировку из одного и того же потока.

ThreadPriority

Задает приоритет выполнения потока Thread.

ThreadState

Задает состояния выполнения объекта Thread.

Делегаты

ContextCallback

Представляет метод, вызываемый в новом контексте.

IOCompletionCallback

Получает код ошибки, количество байтов и тип перекрывающегося значения при завершении операции ввода-вывода в пуле потоков.

ParameterizedThreadStart

Представляет метод, который выполняется в отношении Thread.

SendOrPostCallback

Задает метод, вызываемый при отправке сообщения в контекст синхронизации.

ThreadExceptionEventHandler

Представляет метод, обрабатывающий событие ThreadExceptionApplication.

ThreadStart

Представляет метод, который выполняется в отношении Thread.

TimerCallback

Представляет метод, обрабатывающий вызовы от события Timer.

WaitCallback

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

WaitOrTimerCallback

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