DataProviderDeferral 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
원본 앱의 지연 대리자에서 원본 앱이 다른 비동기 함수의 데이터를 생성할 것임을 DataPackage 개체에 알리는 데 사용됩니다.
public ref class DataProviderDeferral sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class DataProviderDeferral final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class DataProviderDeferral
Public NotInheritable Class DataProviderDeferral
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
예제
다음 코드에서는 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");
}
}
설명
원본 앱에는 즉시 형식을 제공하는 대신 대상 앱에 데이터 형식을 약속하는 옵션이 있습니다. 일반적인 예는 원본 앱이 JPG와 같은 이미지 형식을 지원하지만 대상 앱이 요청하지 않는 한 형식을 만들지 않는 경우입니다. 콘텐츠 공유 원본 앱 샘플을 다운로드할 수 있습니다.
메서드
Complete() |
처리할 준비가 되었다는 것을 DataPackage 에 알릴 수 있습니다. |