JoinableTaskFactory Classe

Definição

Uma fábrica para iniciar tarefas assíncronas que podem mitigar deadlocks quando as tarefas exigem o thread principal de um aplicativo e o thread principal pode ser bloqueado na conclusão de uma tarefa.

public ref class JoinableTaskFactory
[Windows::Foundation::Metadata::WebHostHidden]
class JoinableTaskFactory
public class JoinableTaskFactory
type JoinableTaskFactory = class
Public Class JoinableTaskFactory
Herança
JoinableTaskFactory
Derivado

Comentários

Para obter comentários mais completos, consulte o JoinableTaskContext .

Construtores

JoinableTaskFactory(JoinableTaskCollection)

Inicializa uma nova instância da JoinableTaskFactory classe que adiciona todos os trabalhos gerados à coleção especificada.

JoinableTaskFactory(JoinableTaskContext)

Inicializa uma nova instância da classe JoinableTaskFactory.

Propriedades

Context

Obtém o contexto de tarefa de junção ao qual essa fábrica pertence.

HangDetectionTimeout

Obtém ou define o tempo limite após o qual nenhuma atividade enquanto o bloqueio síncrono sugere um travamento ocorreu.

UnderlyingSynchronizationContext

Obtém o subjacente SynchronizationContext que controla o thread principal no host.

Métodos

Add(JoinableTask)

Adiciona a tarefa unida especificada à coleção aplicável.

IsWaitingOnLongRunningTask()

Verifique se o joinableTask atual está aguardando uma tarefa de longa execução.

OnTransitionedToMainThread(JoinableTask, Boolean)

Gerado sempre que uma tarefa de junção tiver concluído uma transição para o thread principal.

OnTransitioningToMainThread(JoinableTask)

Gerado quando uma tarefa de junção solicitou uma transição para o thread principal.

PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object)

Posta uma mensagem no SynchronizationContext subjacente especificado para processamento quando o thread principal está disponível gratuitamente.

Run(Func<Task>)

Executa o método assíncrono especificado para conclusão enquanto bloqueia o thread de chamada de forma síncrona.

Run(Func<Task>, JoinableTaskCreationOptions)

Executa o método assíncrono especificado para conclusão enquanto bloqueia o thread de chamada de forma síncrona.

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

Executa o método assíncrono especificado para conclusão enquanto bloqueia o thread de chamada de forma síncrona.

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

Executa o método assíncrono especificado para conclusão enquanto bloqueia o thread de chamada de forma síncrona.

RunAsync(Func<Task>)

Invoca um delegado assíncrono no thread do chamador e retorna ao chamador quando o método Async é produzido. O delegado assíncrono é invocado de forma a mitigar deadlocks caso o método Async exija o thread principal, enquanto o thread principal é bloqueado aguardando a conclusão do método Async.

RunAsync(Func<Task>, JoinableTaskCreationOptions)

Invoca um delegado assíncrono no thread do chamador e retorna ao chamador quando o método Async é produzido. O delegado assíncrono é invocado de forma a mitigar deadlocks caso o método Async exija o thread principal, enquanto o thread principal é bloqueado aguardando a conclusão do método Async.

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

Invoca um delegado assíncrono no thread do chamador e retorna ao chamador quando o método Async é produzido. O delegado assíncrono é invocado de forma a mitigar deadlocks caso o método Async exija o thread principal, enquanto o thread principal é bloqueado aguardando a conclusão do método Async.

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

Invoca um delegado assíncrono no thread do chamador e retorna ao chamador quando o método Async é produzido. O delegado assíncrono é invocado de forma a mitigar deadlocks caso o método Async exija o thread principal, enquanto o thread principal é bloqueado aguardando a conclusão do método Async.

SwitchToMainThreadAsync(Boolean, CancellationToken)

Obtém um awaitable cujas continuações são executadas no contexto de sincronização com o qual essa instância foi inicializada, de forma a reduzir os deadlocks e a reentrância.

SwitchToMainThreadAsync(CancellationToken)

Obtém um awaitable cujas continuações são executadas no contexto de sincronização com o qual essa instância foi inicializada, de forma a reduzir os deadlocks e a reentrância.

WaitSynchronously(Task)

Bloqueia de forma síncrona o thread de chamada para a conclusão da tarefa especificada. Se estiver em execução no thread principal, qualquer bomba de mensagem aplicável será suprimida enquanto o thread for suspenso.

WaitSynchronouslyCore(Task)

Bloqueia de forma síncrona o thread de chamada para a conclusão da tarefa especificada.

Métodos de Extensão

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

Bloqueia o thread de chamada (IU) até um cancelamento, a operação assíncrona é concluída. Uma caixa de diálogo de espera opcionalmente cancelável será exibida se a operação levar muito tempo.

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

Bloqueia o thread de chamada (IU) até que uma operação assíncrona seja concluída. Uma caixa de diálogo de espera opcionalmente cancelável será exibida se a operação levar muito tempo.

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

Bloqueia o thread de chamada (IU) até que uma operação assíncrona seja concluída. O cancelamento é oferecido ao usuário.

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

Bloqueia o thread de chamada (IU) até que uma operação assíncrona seja concluída. Nenhum cancelamento é oferecido ao usuário.

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

Delimita a invocação de um método assíncrono, de modo que ele possa ser executado de forma assíncrona, mas pode potencialmente ser concluído de maneira síncrona (aguardado) no futuro.

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

Delimita a invocação de um método assíncrono, de modo que ele possa ser executado de forma assíncrona, mas pode potencialmente ser concluído de maneira síncrona (aguardado) no futuro.

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

Cria um IVsTask para rastrear uma operação assíncrona cancelável.

StartOnIdle(JoinableTaskFactory, Action, VsTaskRunContext)

Agenda um delegado para a execução em segundo plano no thread da interface do usuário sem herdar nenhuma declaração para o thread da interface do usuário de seu chamador.

StartOnIdle(JoinableTaskFactory, Func<Task>, VsTaskRunContext)

Agenda um delegado para a execução em segundo plano no thread da interface do usuário sem herdar nenhuma declaração para o thread da interface do usuário de seu chamador.

WithPriority(JoinableTaskFactory, VsTaskRunContext)

Cria um JoinableTaskFactory que os agendamentos funcionam com a prioridade de thread de interface do usuário do Visual Studio especificada.

WithPriority(JoinableTaskFactory, Dispatcher, DispatcherPriority)

Cria um JoinableTaskFactory que os agendamentos funcionam com os especificados Dispatcher e DispatcherPriority .

Aplica-se a

Acesso thread-safe

Esse tipo é thread-safe para todos os membros.