Lumia 成像 GifRenderer 从不 Returns

Lumia Imaging GifRenderer Never Returns

我正在调用 GifRenderer class 的 RenderAsync() 函数,但它从未 returns。我没有收到任何错误,它永远不会回来。我从一些包含 JPEG 图像的字节数组开始。我为源创建了一组 BufferImageSource 对象。

var sources = new List<IImageProvider>();
sources.Add(new BufferImageSource(frame.Data.AsBuffer(), ImageFormat.Jpeg));

我什至把它降低到只有一个源缓冲区,但它仍然无济于事。我已经尝试过使用和不使用 ConfigureAwait() 的 RenderAsync() 调用,这也没有关系。还有其他我可以检查的东西吗?

using (var gifRenderer = new GifRenderer(sources))
{
  gifRenderer.Duration = 1000 / App.AppSettings.FramesPerSecond;
  gifRenderer.UseGlobalPalette = true;
  gifRenderer.Size = new Size(320, 240);
  var gifbuf = await gifRenderer.RenderAsync().AsTask().ConfigureAwait(false);
  // ... and so on
}

好的,我明白了。这与 Lumia 库无关。这是由 Dispatch Timer 引起的死锁。我真的不确定这有什么关系,因为当它是异步时不应该在 UI 线程上,但是如果我停止 Dispatch Timer,运行 编码,然后再次启动它,它就会工作。