Compartilhar via


CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Método

Definição

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.

Aplica-se a

Confira também