CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) 메서드

정의

유휴 우선 순위의 작업자 스레드에서 UI 스레드에 대한 콜백을 예약하고 결과를 비동기적으로 반환합니다.

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

매개 변수

agileCallback
IdleDispatchedHandler

이벤트가 디스패치될 때 유휴 우선 순위 디스패처가 반환하는 콜백입니다.

반환

비동기 작업의 결과를 포함하는 개체입니다.

특성

설명

RunIdleAsync 메서드는 항상 CoreDispatcherPriority.Low 우선 순위에서 작업 항목을 예약한다는 점을 제외하고 CoreDispatcher.RunAsync와 매우 유사합니다. 작업자 스레드에서 RunIdleAsync를 호출하여 작업 항목을 예약하면 큐에 보류 중인 이벤트 메시지가 없는 경우에만 작업 항목이 처리됩니다. 이렇게 하면 시스템이 유휴 상태일 때 앱에서 맞춤법 검사 또는 기타 불연속 처리와 같은 작업을 수행할 수 있습니다. 콜백에서 반환 된 IdleDispatchedHandler 대리자의 IsDispatcherIdle 속성이 false로 설정된 경우 작업 항목은 이벤트 큐가 다시 비어 있는 즉시 백그라운드 처리를 종료합니다.

그러나 앱이 백그라운드 작업을 처리하는 동안 CoreDispatcher 이벤트 메시지 큐에 보류 중인 이벤트 메시지가 없는 한 계속 처리할 수 있습니다. 앱이 큐에서 이벤트 메시지를 수신하는 경우 백그라운드 처리에서 중단되어야 합니다. 앱이 백그라운드 처리를 종료해야 하는 시기를 확인하려면 RunIdleAsync에 제공한 IdleDispatchedHandler 콜백에서 반환된 IdleDispatchedHandlerArgs 개체의 IsDispatcherIdle 속성에 액세스합니다. 메시지가 있는 경우 백그라운드 처리를 종료하고 우선 순위를 CoreDispatcherPriority.Normal로 설정합니다. 그렇지 않으면 디스패처 상태 확인하지 않고 콜백이 계속 실행되면 입력 부족이 발생할 수 있습니다.

적용 대상

추가 정보