CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Agenda um retorno de chamada no thread da interface do usuário de um thread de trabalho com prioridade ociosa e retorna os resultados de forma assíncrona.
public:
virtual IAsyncAction ^ RunIdleAsync(IdleDispatchedHandler ^ agileCallback) = RunIdleAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction RunIdleAsync(IdleDispatchedHandler const& agileCallback);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction RunIdleAsync(IdleDispatchedHandler agileCallback);
function runIdleAsync(agileCallback)
Public Function RunIdleAsync (agileCallback As IdleDispatchedHandler) As IAsyncAction
Parâmetros
- agileCallback
- IdleDispatchedHandler
O retorno de chamada no qual o dispatcher de prioridade ociosa retorna quando o evento é despachado.
Retornos
Objeto que contém os resultados da ação assíncrona.
- Atributos
Comentários
O método RunIdleAsync é muito semelhante a CoreDispatcher.RunAsync, exceto que ele sempre agenda o item de trabalho em CoreDispatcherPriority.Low priority. Quando você agenda um item de trabalho chamando RunIdleAsync de um thread de trabalho, o item de trabalho é processado somente quando não há mensagens de evento pendentes na fila. Isso permite que seu aplicativo execute tarefas como marcar ortográficas ou outro processamento discreto enquanto o sistema está ocioso. Se o delegado IdleDispatchedHandler retornado pelo retorno de chamada tiver a propriedade IsDispatcherIdle definida como false, o item de trabalho sairá imediatamente do processamento em segundo plano até que a fila de eventos esteja vazia novamente.
No entanto, enquanto o aplicativo estiver processando uma tarefa em segundo plano, ele pode continuar o processamento, desde que não haja mensagens de evento pendentes na fila de mensagens de evento CoreDispatcher . Se o aplicativo receber uma mensagem de evento na fila, ele deverá sair do processamento em segundo plano. Para determinar quando seu aplicativo deve sair do processamento em segundo plano, acesse a propriedade IsDispatcherIdle no objeto IdleDispatchedHandlerArgs retornado pelo retorno de chamada IdleDispatchedHandler fornecido a RunIdleAsync. Se houver uma mensagem, saia do processamento em segundo plano e defina a prioridade como CoreDispatcherPriority.Normal. Caso contrário, se o retorno de chamada continuar a ser executado sem verificar o status do dispatcher, isso poderá levar à fome de entrada.