Как добавить один UWP IRandomAccessStream к другому без использования управляемого потока .Net - PullRequest
0 голосов
/ 13 декабря 2018

Есть ли способ добавить без использования методов .Net?Или они вообще не требуют затрат?

IRandomAccessStream sourceStream;
IRandomAccessStream destinationStream;

// This uses .Net managed stream but I want to avoid that
sourceStream.AsStream().CopyTo(destinationStream.AsStream());

1 Ответ

0 голосов
/ 14 декабря 2018

Есть ли способ добавить, не используя методы .Net?

Я думаю, вы можете использовать байтовый массив в качестве агента для подхода.

Для байта IRandomAccessStream []

async Task<byte[]> Convert(IRandomAccessStream s)
{
    var dr = new DataReader(s.GetInputStreamAt(0));
    var bytes = new byte[s.Size];
    await dr.LoadAsync((uint)s.Size);
    dr.ReadBytes(bytes);
    return bytes;
}

Для байта [] к IRandomAccessStream

async Task<InMemoryRandomAccessStream> ConvertTo(byte[] arr)
{
    InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
    await randomAccessStream.WriteAsync(arr.AsBuffer());
    randomAccessStream.Seek(0); // Just to be sure.                   
    return randomAccessStream;
}

Для объединенных байтовых массивов

byte[] combined = bytesOne.Concat(bytesTwo).Concat(bytesThree).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...