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

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

Классы

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

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

AsyncLocal<T>

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

AutoResetEvent

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

Barrier

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

BarrierPostPhaseException

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

CancellationTokenSource

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

CompressedStack

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

CountdownEvent

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

EventWaitHandle

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

EventWaitHandleAcl

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

ExecutionContext

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

HostExecutionContext

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

HostExecutionContextManager

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

Interlocked

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

LazyInitializer

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

Lock

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

LockRecursionException

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

ManualResetEvent

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

ManualResetEventSlim

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

Monitor

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

Mutex

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

MutexAcl

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

Overlapped

Предоставляет управляемое представление структуры Win32 OVERLAPPED , включая методы передачи информации из экземпляра 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

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

NamedWaitHandleOptions

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

NativeOverlapped

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

SpinLock

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

SpinWait

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

Интерфейсы

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

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

ITimer

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

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

Имя Описание
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 сигнале или истечении времени ожидания.