Язык

JoinableTaskFactory Класс

Определение

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

public ref class JoinableTaskFactory
[Windows::Foundation::Metadata::WebHostHidden]
class JoinableTaskFactory
public class JoinableTaskFactory
type JoinableTaskFactory = class
Public Class JoinableTaskFactory
Наследование
JoinableTaskFactory
Производный

Комментарии

Дополнительные подробные комментарии см. в разделе JoinableTaskContext.

Конструкторы

Имя Описание
JoinableTaskFactory(JoinableTaskCollection)

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

JoinableTaskFactory(JoinableTaskContext)

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

Свойства

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

Возвращает контекст задачи, к которому принадлежит эта фабрика.

HangDetectionTimeout

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

UnderlyingSynchronizationContext

Возвращает базовый SynchronizationContext объект, который управляет основным потоком в узле.

Методы

Имя Описание
Add(JoinableTask)

Добавляет указанную задачу соединения в соответствующую коллекцию.

DisableProcessing()

Запрещает отфильтрованные насосы сообщений работать во время синхронных ожиданий окружающей среды JoinableTask.

IsWaitingOnLongRunningTask()

Проверьте, ожидает ли текущая задача joinableTask.

OnTransitionedToMainThread(JoinableTask, Boolean)

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

OnTransitioningToMainThread(JoinableTask)

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

PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object)

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

Run(Func<Task>, JoinableTaskCreationOptions)

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

Run(Func<Task>)

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

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

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

Run<T>(Func<Task<T>>)

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

RunAsync(Func<Task>, JoinableTaskCreationOptions)

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

RunAsync(Func<Task>, String, JoinableTaskCreationOptions)

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

RunAsync(Func<Task>)

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

RunAsync<T>(Func<Task<T>>, JoinableTaskCreationOptions)

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

RunAsync<T>(Func<Task<T>>, String, JoinableTaskCreationOptions)

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

RunAsync<T>(Func<Task<T>>)

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

SwitchToMainThreadAsync(Boolean, CancellationToken)

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

SwitchToMainThreadAsync(CancellationToken)

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

WaitSynchronously(Task)

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

WaitSynchronouslyCore(Task)

Синхронно блокирует вызывающий поток для завершения указанной задачи.

Методы расширения

Имя Описание
Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения отмены асинхронной операции. При необходимости отображается диалоговое окно ожидания с возможностью отмены, если операция занимает слишком много времени.

Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. При необходимости отображается диалоговое окно ожидания с возможностью отмены, если операция занимает слишком много времени.

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. Пользователю предлагается отмена.

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. Пользователю не предлагается отмена.

Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения отмены асинхронной операции. При необходимости отображается диалоговое окно ожидания с возможностью отмены, если операция занимает слишком много времени.

Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. При необходимости отображается диалоговое окно ожидания с возможностью отмены, если операция занимает слишком много времени.

Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. Пользователю предлагается отмена.

Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)

Блокирует вызывающий поток (пользовательский интерфейс) до завершения асинхронной операции. Пользователю не предлагается отмена.

RunAsync(JoinableTaskFactory, VsTaskRunContext, Func<Task>)

Упаковывает вызов асинхронного метода, который может выполняться асинхронно, но потенциально может быть синхронно завершен (ожидается) в будущем.

RunAsync<T>(JoinableTaskFactory, VsTaskRunContext, Func<Task<T>>)

Упаковывает вызов асинхронного метода, который может выполняться асинхронно, но потенциально может быть синхронно завершен (ожидается) в будущем.

RunAsyncAsVsTask<T>(JoinableTaskFactory, VsTaskRunContext, Func<CancellationToken,Task<T>>)

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

StartOnIdle(JoinableTaskFactory, Action, VsTaskRunContext)

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

StartOnIdle(JoinableTaskFactory, Func<Task>, VsTaskRunContext)

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

WithPriority(JoinableTaskFactory, Dispatcher, DispatcherPriority)

JoinableTaskFactory Создает расписание, которое работает с указанным Dispatcher и DispatcherPriority.

WithPriority(JoinableTaskFactory, VsTaskRunContext)

JoinableTaskFactory Создает расписание, которое работает с указанным приоритетом потока пользовательского интерфейса Visual Studio.

Применяется к

Потокобезопасность

Этот тип является потокобезопасной для всех членов.