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