0

我正在调用 GifRenderer 类的 RenderAsync() 函数,但它永远不会返回。我没有错误,它永远不会回来。我从一些包含 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
}
4

1 回答 1

0

好吧,我想通了。这与 Lumia 库无关。这是由调度计时器引起的死锁。我真的不确定这有什么关系,因为它不应该在异步的 UI 线程上,但是如果我停止调度计时器,运行编码,然后重新启动它,它就可以工作。

于 2015-02-22T04:20:43.300 回答