2017-01-17 3 views
1

다음 중 어느 것이 맞습니까?IRandomAccessStream 또는 기본 MemoryStream을 처리해야합니까?

using (var memoryStream = new MemoryStream()) 
{ 
    var randomAccessStream = memoryStream.AsRandomAccessStream(); 
    process(randomAccessStream); 
} 

또는

using (var randomAccessStream = new MemoryStream().AsRandomAccessStream()) 
{ 
    process(randomAccessStream); 
} 

는 내가 직접 Windows.Storage.Streams.InMemoryRandomAccessStream();을 사용할 수 있습니다 알고 있지만 어쨌든 궁금합니다. 이상적으로 설명이있는 MSDN 기사가 가장 좋습니다.

답변

0

AsRandomAccessStream 확장 메서드의 소스 코드에 따르면 기본 스트림을 처리 할 필요가 없습니다.

디스크에 어셈블리 System.Runtime.WindowsRuntime.dll을 쉽게 찾고 디 컴파일러 (예 : JetBrains dotPeek)를 사용하여 소스 코드를 살펴볼 수 있습니다.

void IDisposable.Dispose() 
{ 
    Stream managedStream = this.managedStream; 
    if (managedStream == null) 
    return; 
    this.managedStream = (Stream) null; 
    if (this.leaveUnderlyingStreamOpen) //this flag is equal to false. 
    return; 
    managedStream.Dispose(); 
} 
:

AsRandomAccessStream 방법은 적절한 방법을 구현 IDisposableNetFxToWinRtStreamAdapter 클래스의 인스턴스를 생성