2015-03-09 3 views

ответ

5

Самый простой способ я нашел был идти через MemoryStream.GetWindowsRuntimeBuffer:

IRandomAccessStream stream = ...; 

using (var memoryStream = new MemoryStream()) 
{ 
    memoryStream.Capacity = (int)stream.Size; 
    var ibuffer = memoryStream.GetWindowsRuntimeBuffer(); 
    await stream.ReadAsync(ibuffer, (uint)stream.Size, InputStreamOptions.None).AsTask().ConfigureAwait(false); 
} 
+0

Является ли это ваш обходной путь или вы сразу же найти решение и разместил его? –

+0

Это то, что я использовал, я думал, что поделюсь. –

+0

Вы не должны делать '.AsTask(). ConfigureAwait (false)', это встроенная операция async, поэтому нет смысла пытаться продолжить на вызываемом потоке - этого не произойдет! –

Смежные вопросы