Condividi tramite


CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Metodo

Definizione

Pianifica un callback nel thread dell'interfaccia utente da un thread di lavoro con priorità inattiva e restituisce i risultati in modo asincrono.

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

Parametri

agileCallback
IdleDispatchedHandler

Callback in cui viene restituito il dispatcher con priorità inattiva quando viene inviato l'evento.

Restituisce

Oggetto contenente i risultati dell'azione asincrona.

Attributi

Commenti

Il metodo RunIdleAsync è molto simile a CoreDispatcher.RunAsync, ad eccezione del fatto che pianifica sempre l'elemento di lavoro in CoreDispatcherPriority.Low priority. Quando si pianifica un elemento di lavoro chiamando RunIdleAsync da un thread di lavoro, l'elemento di lavoro viene elaborato solo quando non sono presenti messaggi di evento in sospeso nella coda. Ciò consente all'app di eseguire attività come controllo ortografico o altre elaborazioni discrete mentre il sistema è inattiva. Se il delegato IdleDispatchedHandler restituito dal callback ha la proprietà IsDispatcherIdle impostata su false, l'elemento di lavoro chiude immediatamente l'elaborazione in background finché la coda di eventi non è nuovamente vuota.

Tuttavia, mentre l'app elabora un'attività in background, può continuare l'elaborazione purché non siano presenti messaggi di evento in sospeso nella coda dei messaggi di evento CoreDispatcher . Se l'app riceve un messaggio di evento nella coda, deve interrompere l'elaborazione in background. Per determinare quando l'app deve uscire dall'elaborazione in background, accedere alla proprietà IsDispatcherIdle nell'oggetto IdleDispatchedHandlerArgs restituito dal callback IdleDispatchedHandler fornito a RunIdleAsync. Se è presente un messaggio, uscire dall'elaborazione in background e impostare la priorità su CoreDispatcherPriority.Normal. In caso contrario, se il callback continua a essere eseguito senza controllare lo stato del dispatcher, potrebbe causare la starvazione di input.

Si applica a

Vedi anche