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

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

Классы

Имя Описание
AbandonedMutexException

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

AsyncLocal<T>

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

AutoResetEvent

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

Barrier

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

BarrierPostPhaseException

Исключение, которое возникает при сбое после этапа действия Barrier .

CancellationTokenSource

Сигнализирует о CancellationToken том, что его следует отменить.

CompressedStack

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

CountdownEvent

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

EventWaitHandle

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

ExecutionContext

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

HostExecutionContext

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

HostExecutionContextManager

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

Interlocked

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

LazyInitializer

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

LockRecursionException

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

ManualResetEvent

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

ManualResetEventSlim

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

Monitor

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

Mutex

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

Overlapped

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

PreAllocatedOverlapped

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

ReaderWriterLock

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

ReaderWriterLockSlim

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

RegisteredWaitHandle

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

Semaphore

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

SemaphoreFullException

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

SemaphoreSlim

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

SynchronizationContext

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

SynchronizationLockException

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

Thread

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

ThreadAbortException

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

ThreadExceptionEventArgs

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

ThreadInterruptedException

Исключение, которое возникает при Thread прерывании операции во время ожидания.

ThreadLocal<T>

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

ThreadPool

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

ThreadPoolBoundHandle

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

ThreadStartException

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

ThreadStateException

Исключение, которое возникает при Thread недопустимом ThreadState вызове метода.

Timeout

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

Timer

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

Volatile

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

WaitHandle

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

WaitHandleCannotBeOpenedException

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

WaitHandleExtensions

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

Структуры

Имя Описание
AsyncFlowControl

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

AsyncLocalValueChangedArgs<T>

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

CancellationToken

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

CancellationTokenRegistration

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

LockCookie

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

NativeOverlapped

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

SpinLock

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

SpinWait

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

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

Имя Описание
ApartmentState

Указывает состояние квартиры Thread.

EventResetMode

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

LazyThreadSafetyMode

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

LockRecursionPolicy

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

ThreadPriority

Указывает приоритет планирования Thread.

ThreadState

Указывает состояния выполнения Thread.

Делегаты

Имя Описание
ContextCallback

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

IOCompletionCallback

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

ParameterizedThreadStart

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

SendOrPostCallback

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

ThreadExceptionEventHandler

Представляет метод, который будет обрабатывать ThreadException событие объекта Application.

ThreadStart

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

TimerCallback

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

WaitCallback

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

WaitOrTimerCallback

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