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

Пространство имен Microsoft.VisualStudio.Threading содержит интерфейсы API для использования в проектах Visual Studio SDK. Эти API следует использовать для асинхронного программирования в Visual Studio. Это помогает избежать взаимоблокировки.

Эта библиотека основана на библиотеке параллельных задач .NET Framework (TPL). Сведения об этой библиотеке см. в разделе Библиотека параллельных задач (TPL).

Классы

AsyncAutoResetEvent

Асинхронная реализация autoResetEvent.

AsyncBarrier

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

AsyncCountdownEvent

Событие обратного отсчета в асинхронном стиле.

AsyncCrossProcessMutex

Мьютекс, который можно ввести асинхронно.

AsyncLazy<T>

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

AsyncLazyInitializer

Отложенно выполняет делегат, который имеет некоторый побочный эффект (как правило, инициализация), так что делегат выполняется не более одного раза.

AsyncLocal<T>

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

AsyncManualResetEvent

Вариант ManualResetEvent , который можно асинхронно ожидать.

AsyncQueue<T>

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

AsyncReaderWriterLock

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

AsyncReaderWriterLock.Awaiter

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

AsyncReaderWriterResourceLock<TMoniker,TResource>

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

AsyncSemaphore

Асинхронный SemaphoreSlim класс с более удобным синтаксисом выпуска.

AwaitExtensions

Методы расширения и ожидаемые компоненты для .NET 4.5.

CancellationTokenExtensions

Расширения для CancellationToken.

DelegatingJoinableTaskFactory

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

DispatcherExtensions

Методы расширения для WPF Dispatcher для лучшего JoinableTaskFactoryвзаимодействия с .

HangReportContribution

Дополнение к сводному отчету о зависаниях.

IllegalSemaphoreUsageException

Исключение, которое возникает при нарушении контракта ReentrantSemaphore объекта .

JoinableTask

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

JoinableTask<T>

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

JoinableTaskCollection

Коллекция неполных JoinableTask объектов.

JoinableTaskContext

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

JoinableTaskContext.HangDetails

Класс для инкапсуляции сведений о возможном зависание. Экземпляр этого JoinableTaskContext.HangDetails класса будет передан экземплярам JoinableTaskContextNode , которые зарегистрировали уведомления о зависаниях.

JoinableTaskContextException

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

JoinableTaskContextNode

Настраиваемый источник экземпляров JoinableTaskFactory.

JoinableTaskFactory

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

NoMessagePumpSyncContext

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

NonConcurrentSynchronizationContext

Объект SynchronizationContext , выполняющий сообщения в порядке их получения.

ProgressWithCompletion<T>

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

ReentrantSemaphore

Семафор JoinableTaskFactory, поддерживающий повторный вход без использования другого слота в семафоре.

SemaphoreFaultedException

Исключение возникает, когда объект ReentrantSemaphore находится в состоянии сбоя.

SingleThreadedSynchronizationContext

Однопоточный контекст синхронизации, сродни DispatcherSynchronizationContext и WindowsFormsSynchronizationContext.

SingleThreadedSynchronizationContext.Frame

Кадр накачки сообщений, который может быть отправлен с PushFrame(SingleThreadedSynchronizationContext+Frame) для перекачки сообщений в потоке-владельце.

ThreadingTools

Вспомогательные методы для работы с потоками.

TplExtensions

Расширения для библиотеки параллельных задач.

Структуры

AsyncCrossProcessMutex.LockReleaser

Значение, возвращаемое из EnterAsync(TimeSpan) , должно быть удалено, чтобы освободить мьютекс.

AsyncLazy<T>.RevertRelevance

Структура, скрывающая релевантность блока кода от конкретного AsyncLazy<T> и созданного JoinableTaskContext с помощью .

AsyncReaderWriterLock.Awaitable

Объект awaitable, возвращаемый из запросов асинхронной блокировки.

AsyncReaderWriterLock.LockHandle

"Открытое" представление определенной блокировки.

AsyncReaderWriterLock.Releaser

Значение, уничтожение которого снимает удерживаемую блокировку.

AsyncReaderWriterLock.Suppression

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

AsyncReaderWriterResourceLock<TMoniker,TResource>.ResourceAwaitable

Объект awaitable, возвращаемый из запросов асинхронной блокировки.

AsyncReaderWriterResourceLock<TMoniker,TResource>.ResourceAwaiter

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

AsyncReaderWriterResourceLock<TMoniker,TResource>.ResourceReleaser

Значение, уничтожение которого снимает удерживаемую блокировку.

AsyncSemaphore.Releaser

Значение, уничтожение которого активирует снятие блокировки.

AwaitExtensions.AggregateExceptionAwaitable

Результат подготовки ConfigureAwaitForAggregateException(Task, Boolean)Task к ожиданию при вызове со всеми внутренними исключениями.

AwaitExtensions.AggregateExceptionAwaiter

Результат подготовки GetAwaiter()Task к ожиданию при вызове со всеми внутренними исключениями.

AwaitExtensions.ConfiguredTaskYieldAwaitable

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

AwaitExtensions.ConfiguredTaskYieldAwaiter

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

AwaitExtensions.ExecuteContinuationSynchronouslyAwaitable

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

AwaitExtensions.ExecuteContinuationSynchronouslyAwaitable<T>

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

AwaitExtensions.ExecuteContinuationSynchronouslyAwaiter

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

AwaitExtensions.ExecuteContinuationSynchronouslyAwaiter<T>

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

AwaitExtensions.SynchronizationContextAwaiter

Объект awaiter, возвращаемый из GetAwaiter(SynchronizationContext).

AwaitExtensions.TaskSchedulerAwaitable

Объект awaitable, который выполняет продолжение в определенном планировщике заданий.

AwaitExtensions.TaskSchedulerAwaiter

Объект awaiter, возвращаемый из GetAwaiter(TaskScheduler).

CancellationTokenExtensions.CombinedCancellationToken

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

JoinableTaskCollection.JoinRelease

Значение, уничтожение которого отменяет операцию Join().

JoinableTaskContext.RevertRelevance

Структура, которая очищает асинхронные и потоковые статические значения CallContext и SynchronizationContext и восстанавливает эти значения при удалении этой структуры.

JoinableTaskFactory.MainThreadAwaitable

Структура awaitable, которая облегчает асинхронный переход в основной поток.

JoinableTaskFactory.MainThreadAwaiter

Структуру awaiter, которая упрощает асинхронный переход в основной поток.

JoinableTaskInternals.JoinableTaskToken

Пространство имен Microsoft.VisualStudio.Threading содержит интерфейсы API для использования в проектах Visual Studio SDK. Эти API следует использовать для асинхронного программирования в Visual Studio. Это помогает избежать взаимоблокировки.

Эта библиотека основана на библиотеке параллельных задач .NET Framework (TPL). Сведения об этой библиотеке см. в разделе Библиотека параллельных задач (TPL).

ReentrantSemaphore.RevertRelevance

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

SpecializedSyncContext

Структура, которая применяет и отменяет изменения в SynchronizationContext.

TplExtensions.NoThrowTaskAwaitable

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

TplExtensions.NoThrowTaskAwaiter

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

TplExtensions.NoThrowValueTaskAwaitable

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

TplExtensions.NoThrowValueTaskAwaitable<TResult>

Ожидающий объект , который заключает в оболочку ValueTask<TResult> и никогда не создает исключение при ожидании.

TplExtensions.NoThrowValueTaskAwaiter

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

TplExtensions.NoThrowValueTaskAwaiter<TResult>

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

Интерфейсы

IAsyncDisposable

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

IHangReportContributor

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

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

AsyncReaderWriterLock.LockFlags

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

AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags

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

JoinableTaskCreationOptions

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

ReentrantSemaphore.ReentrancyMode

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

RegistryChangeNotificationFilters

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

Делегаты

AsyncEventHandler

Асинхронный обработчик событий.

AsyncEventHandler<TEventArgs>

Асинхронный обработчик событий.