C# 使用Kinect进行螺纹加工
我正在编写一个使用Kinect的C#应用程序,目前我正在将输出写入着色器资源并将其渲染为纹理,我的问题是Kinect(显然)仅以30fps的速度运行,因此它严重限制了我的性能 克服这一问题的最佳方法是多线程吗? 是否有某种设计模式可以帮助解决此类问题? 据我所知,我可能希望kinect处理线程上的数据,然后在处理完成后访问它,但我不确定从何处开始以安全的方式 谢谢你提供的任何建议C# 使用Kinect进行螺纹加工,c#,multithreading,slimdx,kinect,openni,C#,Multithreading,Slimdx,Kinect,Openni,我正在编写一个使用Kinect的C#应用程序,目前我正在将输出写入着色器资源并将其渲染为纹理,我的问题是Kinect(显然)仅以30fps的速度运行,因此它严重限制了我的性能 克服这一问题的最佳方法是多线程吗? 是否有某种设计模式可以帮助解决此类问题? 据我所知,我可能希望kinect处理线程上的数据,然后在处理完成后访问它,但我不确定从何处开始以安全的方式 谢谢你提供的任何建议 我目前正在使用OpenNI作为kinect驱动程序/api,SlimDX作为directX端的渲染。我以前没有使用过
我目前正在使用OpenNI作为kinect驱动程序/api,SlimDX作为directX端的渲染。我以前没有使用过kinect,您也没有指定要使用的驱动程序/包装器,但我怀疑这可能无关紧要 您可能需要执行以下操作:
关于c#中线程的优秀教程,我始终推荐。我还建议,如果您想要更多关于如何加快应用程序速度的具体信息,您可能应该编辑您的问题,并添加详细信息,具体说明您现在是如何构建的以及您正在使用的包装器/驱动程序,等等。任何需要高性能的Kinect开发都应该使用池模型,而不是事件模型。作为补充,您最好的选择是打开一个线程并执行池操作。 您可以在事件模型中使用太多线程,以进行长时间操作,而不是冻结用户界面
您可以看到:我没有使用Kinect的经验,但是如果处理数据需要花费大量时间,那么数据应该在单独的线程上处理,而不是在UI线程上处理。你可以试试。谢谢你的回复,当我实现这一点时,我会抛出一些代码说明我所做的事情,以防其他人遇到这个问题。