我正在使用Kinect进行开发,因此需要在AllFramesReady事件中执行任务。
该任务包括大量使用BinaryWriter编写的内容。

我知道帧(颜色,深度,骨架)存在很短的时间。

using (var imageFrame = e.OpenColorImageFrame())
{
     // Do the heavy task writing tons of bits do a `BinaryWriter`
} // The frame is no longer available :(


有办法并行化吗?还是一些提高我的代码性能的技巧?

最佳答案

通常,不要在AllFramesReady事件处理程序中执行繁重的任务。我的建议是:将Frame信息存储在队列中,然后使用另一个线程将存储的信息写入磁盘内存。请注意,当进入队列的速率超过离开队列的速率时,有时会耗尽内存。

08-07 15:46