所以我正在使用Kinect SDK编写一个XNA应用程序,当我的游戏从游戏屏幕变为另一个屏幕时,我使用
停止Kinectsensor.Stop();
sensor.Dispose();
虽然它确实有效但它有相当大的延迟,并且让我的游戏看起来没有响应至少10秒。然后在那个屏幕后我再次回到游戏屏幕,但设置不同。所以我用
//set all my event handlers
sensor.blahStream += myFunction;
sensor.Start();
这是重启Kinect的最佳方法吗?
答案 0 :(得分:0)
只是摆弄了一些,将停止放在一个单独的线程似乎有效。
stopGameThread = new Thread(new ParameterizedThreadStart(stopGame));
stopGameThread.Start();
调用此方法:
void stopGame(object sender)
{
gScreen.sensor.Stop();
gScreen.sensor.Dispose();
running = false;
}
gScreen
是此游戏屏幕包装中包含的游戏屏幕。
如果有人有更好的答案,请随时发布。