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)

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

IsWaitingOnLongRunningTask()

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

OnTransitionedToMainThread(JoinableTask, Boolean)

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

OnTransitioningToMainThread(JoinableTask)

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

PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object)

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

Run(Func<Task>)

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

Run(Func<Task>, JoinableTaskCreationOptions)

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

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

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

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

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

RunAsync(Func<Task>)

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

RunAsync(Func<Task>, JoinableTaskCreationOptions)

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

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

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

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

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

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>>)

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

StartOnIdle(JoinableTaskFactory, Action, VsTaskRunContext)

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

StartOnIdle(JoinableTaskFactory, Func<Task>, VsTaskRunContext)

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

WithPriority(JoinableTaskFactory, VsTaskRunContext)

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

WithPriority(JoinableTaskFactory, Dispatcher, DispatcherPriority)

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

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

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

Этот тип является потокобезопасным для всех элементов.