我有以下方法,我传递一个加载了JPEG数据的InMemoryRandomAccessStream:
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图像,修改&#34; GetPixelDataAsync&#34;和临时插入&#34;等待Task.Delay(...)&#34;线之间,但没有任何帮助。该应用程序执行许多其他耗时的异步操作,除了这部分以外工作正常。目前还不清楚为什么设置一个断点(除了它有一些时间延迟)使它工作。
请帮助解决这个问题。