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


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

Пространства имен System.Threading, System.Threading.Tasks и System.Threading.Tasks.DataFlow содержат типы, которые обеспечивают возможность многопоточного программирования и упрощают создание параллельного и асинхронного кода.

В этом разделе описываются типы пространств имен System.Threading, System.Threading.Tasks и System.Threading.Tasks.DataFlow, которые входят в Приложения .NET для Магазина Windows и могут быть установлены и использованы для создания приложений Магазин Windows. Обратите внимание, что Приложения .NET для Магазина Windows не включает все члены каждого типа. Дополнительные сведения об типах см. в соответствующих разделах. Документация по типу показывает, какие члены включены в Приложения .NET для Магазина Windows.

Чтобы установить пространство имен System.Threading.Tasks.Dataflow, откройте проект в Visual Studio 2012 или более поздней версии, в меню Проект выберите Управление пакетами NuGet и выполните в Интернете поиск пакета Microsoft.Tpl.Dataflow.

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

Типы, поддерживаемые в Приложения .NET для Магазина Windows

Описание

AbandonedMutexException

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

AutoResetEvent

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

Barrier

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

BarrierPostPhaseException

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

CancellationToken

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

CancellationTokenRegistration

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

CancellationTokenSource

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

CountdownEvent

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

EventResetMode

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

EventWaitHandle

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

Interlocked

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

LazyInitializer

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

LazyThreadSafetyMode

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

LockRecursionException

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

LockRecursionPolicy

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

ManualResetEvent

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

ManualResetEventSlim

Предоставляет уменьшенную версию ManualResetEvent.

Monitor

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

Mutex

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

ReaderWriterLockSlim

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

Semaphore

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

SemaphoreFullException

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

SemaphoreSlim

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

SendOrPostCallback

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

SpinLock

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

SpinWait

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

SynchronizationContext

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

SynchronizationLockException

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

ThreadLocal<T>

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

Timeout

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

Volatile

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

WaitHandle

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

WaitHandleCannotBeOpenedException

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

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

Типы, поддерживаемые в Приложения .NET для Магазина Windows

Описание

ConcurrentExclusiveSchedulerPair

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

Parallel

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

ParallelLoopResult

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

ParallelLoopState

Позволяет итерациям параллельных циклов взаимодействовать с другими итерациями. Экземпляр этого класса предоставляется каждому циклу классом Parallel; невозможно создавать экземпляры в пользовательском коде.

ParallelOptions

Хранит параметры, настраивающие работу методов класса Parallel.

Task

Представляет асинхронную операцию.

Task<TResult>

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

TaskCanceledException

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

TaskCompletionSource<TResult>

Представляет сторону производителя задач Task<TResult>, не привязанных к делегату и предоставляющих доступ к потребительской стороне через свойство TaskCompletionSource<T>.Task.

TaskContinuationOptions

Задает поведение для задачи, созданной с помощью метода ContinueWith или Task<T>.ContinueWith.

TaskCreationOptions

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

TaskExtensions

Предоставляет набор статических (Shared в Visual Basic) методов для работы с определенными типами экземпляров Task.

TaskFactory

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

TaskFactory<TResult>

Предоставляет поддержку создания и планирования объектов Task<T>.

TaskScheduler

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

TaskSchedulerException

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

TaskStatus

Представляет текущий этап жизненного цикла задачи.

UnobservedTaskExceptionEventArgs

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

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

Чтобы установить пространство имен System.Threading.Tasks.Dataflow, откройте проект в Visual Studio 2012, в меню Проект выберите пункт Управление пакетами NuGet и найдите в Интернете пакет Microsoft.Tpl.Dataflow package.

Типы, поддерживаемые в Приложения .NET для Магазина Windows

Описание

ActionBlock<TInput>

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

BatchBlock<T>

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

BatchedJoinBlock<T1, T2>

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

BatchedJoinBlock<T1, T2, T3>

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

BroadcastBlock<T>

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

BufferBlock<T>

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

DataflowBlock

Предоставляет набор статических (Shared в Visual Basic) методов для работы с блоками потоков данных.

DataflowBlockOptions

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

DataflowLinkOptions

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

DataflowMessageHeader

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

DataflowMessageStatus

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

ExecutionDataflowBlockOptions

Предоставляет параметры, используемые для настройки обработки, выполняемой блоками потока данных, которые обрабатывают каждое сообщение с помощью вызова указанного пользователем делегата. Это блоки потока данных, такие как ActionBlock<TInput> и TransformBlock<TInput, TOutput>.

GroupingDataflowBlockOptions

Предоставляет параметры, используемые для настройки обработки, выполняемой блоками потока данных, которые группируют несколько сообщений. Это блоки потока данных, такие как JoinBlock<T1, T2> и BatchBlock<T>.

IDataflowBlock

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

IPropagatorBlock<TInput, TOutput>

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

IReceivableSourceBlock<TOutput>

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

ISourceBlock<TOutput>

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

ITargetBlock<TInput>

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

JoinBlock<T1, T2>

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

JoinBlock<T1, T2, T3>

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

TransformBlock<TInput, TOutput>

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

TransformManyBlock<TInput, TOutput>

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

WriteOnceBlock<T>

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

См. также

Основные понятия

API платформы .NET для приложений Магазина Windows