UWP: самый быстрый способ создать InMemoryRandomAccessStream из байтового массива - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно создать InMemoryRandomAccessStream из байта [] как можно быстрее.

Я вышел с этим методом

private static async Task<InMemoryRandomAccessStream> GetStreamAsync(byte[] bytes)
{
    InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream();
    await stream.WriteAsync(bytes.AsBuffer());
    stream.Seek(0);
    return stream;
}

, но, к сожалению, это занимает около 8 миллисекунд, идля нашей цели это слишком много.

Есть ли более быстрый (и, возможно, синхронный) способ достижения той же цели?

Я ищу время около 1 миллисекунды или меньше.

Спасибо !!

1 Ответ

0 голосов
/ 11 июля 2019

Мне нужен IRandomAccessStream для передачи в CanvasBitmap.LoadAsync () для загрузки изображения в SpriteVisual с использованием Win2D api.

Для вашего комментария, может быть, IRandomAccessStream действительно то, чтовам нужно, а не InMemoryRandomAccessStream.

Вот другой способ получить IAccessRandomStream из байтового массива:

private IRandomAccessStream GetStreamAsync(byte[] bytes)
{
    var ms = new MemoryStream(bytes);
    var stream = ms.AsRandomAccessStream();
    stream.Seek(0);
    return stream;
}

Этот способ быстрее, чем оригинальный метод.

Однако на скорость загрузки изображений влияет множество факторов, мы можем только попытаться улучшить ее.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...