У меня есть следующий метод, в котором я передаю InMemoryRandomAccessStream, загруженный данными JPEG:
private async Task<byte[]> GetDataAsync(IRandomAccessStream stream)
{
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
BitmapFrame frame = await decoder.GetFrameAsync(0);
BitmapTransform transform = new BitmapTransform()
{
ScaledWidth = decoder.PixelWidth,
ScaledHeight = decoder.PixelHeight
};
PixelDataProvider pixelData = await frame.GetPixelDataAsync(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Straight, transform, ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.DoNotColorManage);
return pixelData.DetachPixelData();
}
Этот метод зависает все время, за исключением случаев, когда я ставлю точку останова на первую строку и перехожу через каждую строку. Я пытался использовать разные изображения JPEG, изменять параметры «GetPixelDataAsync» и временно вставлять «ожидание Task.Delay (...)» между строками, но ничего не помогает. Приложение выполняет множество других трудоемких асинхронных операций и работает нормально, за исключением этой части. Непонятно, почему установка точки останова (за исключением того, что она дает некоторую временную задержку) заставляет ее работать.
Пожалуйста, помогите решить эту проблему.