Freigeben über


CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Methode

Definition

Plant einen Rückruf für den UI-Thread von einem Workerthread mit Leerlaufpriorität und gibt die Ergebnisse asynchron zurück.

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

Parameter

agileCallback
IdleDispatchedHandler

Der Rückruf, den der Verteiler der Leerlaufpriorität zurückgibt, wenn das Ereignis verteilt wird.

Gibt zurück

Objekt, das die Ergebnisse der asynchronen Aktion enthält.

Attribute

Hinweise

Die RunIdleAsync-Methode ist CoreDispatcher.RunAsync sehr ähnlich, mit der Ausnahme, dass das Arbeitselement immer mit der Priorität CoreDispatcherPriority.Low geplant wird. Wenn Sie ein Arbeitselement planen, indem Sie RunIdleAsync aus einem Workerthread aufrufen, wird das Arbeitselement nur verarbeitet, wenn keine Ereignismeldungen in der Warteschlange ausstehen. Dadurch kann Ihre App Aufgaben wie rechtschreibprüfung oder andere diskrete Verarbeitungen ausführen, während sich das System im Leerlauf befindet. Wenn für den vom Rückruf zurückgegebenen IdleDispatchedHandler-Delegat die IsDispatcherIdle-Eigenschaft auf false festgelegt ist, beendet das Arbeitselement sofort die Hintergrundverarbeitung, bis die Ereigniswarteschlange wieder leer ist.

Während Ihre App jedoch eine Hintergrundaufgabe verarbeitet, kann sie die Verarbeitung fortsetzen, solange in der CoreDispatcher-Ereignisnachrichtenwarteschlange keine Ereignismeldungen ausstehen. Wenn Ihre App eine Ereignisnachricht in der Warteschlange empfängt, muss sie die Hintergrundverarbeitung unterbrechen. Um zu bestimmen, wann Ihre App die Hintergrundverarbeitung beenden muss, greifen Sie auf die IsDispatcherIdle-Eigenschaft für das IdleDispatchedHandlerArgs-Objekt zu, das vom IdleDispatchedHandler-Rückruf zurückgegeben wird, den Sie für RunIdleAsync bereitgestellt haben. Wenn eine Nachricht vorhanden ist, beenden Sie die Hintergrundverarbeitung, und legen Sie die Priorität auf CoreDispatcherPriority.Normal fest. Wenn der Rückruf andernfalls weiterhin ausgeführt wird, ohne den Verteiler status zu überprüfen, kann dies zu einem Eingabemangel führen.

Gilt für:

Weitere Informationen