내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

DataProviderDeferral Class

원본 응용 프로그램의 지연 대리자가 원본 응용 프로그램에서 다른 비동기 함수로부터 데이터를 생성함을 DataPackage 개체에 알리는 데 사용됩니다.

구문


/* 이 개체를 만들거나 액세스하는 방법에 대한 자세한 내용은 설명을 참조하십시오. */

특성

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Version(0x06020000)]

멤버

DataProviderDeferral클래스에는 다음과 같은 형식의 멤버가 있습니다.

메서드

The DataProviderDeferral 클래스 - 이러한 메서드가 있습니다. C#, Visual Basic 및 C++에서는 다음 위치의 메서드도 상속합니다. Object 클래스.

메서드Description
Complete Informs a DataPackage that it is ready for processing.

 

설명

소스 앱에는 데이터 형식을 즉시 제공하지 않고 대신에 대상 앱에 형식을 제공할 것을 약속하는 옵션이 있습니다. 일반적인 예를 들면 원본 앱이 JPG와 같은 이미지 형식을 지원하지만 대상 앱이 요청하지 않는 이상 해당 형식을 만들지 않는 경우입니다. 이런 유형의 교환이 원본 및 대상 앱과 작동하는 방법에 대한 자세한 내용은 풀 시나리오를 지원하는 방법을 참조하십시오. 콘텐츠 공유 소스 앱 샘플을 다운로드할 수도 있습니다.

Windows Phone 8

이 API는 구현되어 있지 않으므로 호출할 경우 예외가 throw됩니다. Windows Phone 런타임 API를 참조하십시오.

예제

다음 코드는 DataProviderDeferral 개체를 사용하여 대상 앱에서 요청을 지연시키는 방법을 보여 줍니다.


async private void OnDeferredImageRequestedHandler(DataProviderRequest request)
{
    if (this.imageFile != null)
    {
        // A deferral object is required because this method uses "await" before setting the 
        // data in the DataPackage.
        var deferral = request.GetDeferral();

        var imageStream = await this.imageFile.OpenAsync(FileAccessMode.Read);

        // Decode the image.
        var imageDecoder = await BitmapDecoder.CreateAsync(imageStream);

        // Re-encode the image at 50% width and height.
        var inMemoryStream = new InMemoryRandomAccessStream();
        var imageEncoder = await BitmapEncoder.CreateForTranscodingAsync(inMemoryStream, imageDecoder);
        imageEncoder.BitmapTransform.ScaledWidth = (uint)(imageDecoder.OrientedPixelWidth * 0.5);
        imageEncoder.BitmapTransform.ScaledHeight = (uint)(imageDecoder.OrientedPixelHeight * 0.5);
        await imageEncoder.FlushAsync();

        request.SetData(RandomAccessStreamReference.CreateFromStream(inMemoryStream));

        await log(OutputText, "Image has been set via deferral");

        // The data is set. Signal that the operation is complete.
        deferral.Complete();
    }
    else
    {
        await log(OutputText, "Error: imageFile is null");
    }
}


요구 사항

지원되는 최소 클라이언트

Windows 8 [Windows 스토어 앱, 데스크톱 앱]

지원되는 최소 서버

Windows Server 2012 [Windows 스토어 앱, 데스크톱 앱]

지원되는 최소 전화

Windows Phone 8[구현되지 않음, 설명 참조]

Namespace

Windows.ApplicationModel.DataTransfer
Windows::ApplicationModel::DataTransfer [C++]

Metadata

Windows.winmd

 

 

표시:
© 2014 Microsoft