7
我目前正在研究一個涉及Kinect與OpenNI C#封裝的小項目。對於此項目,使用xml配置文件和Context.CreateFromXmlFile
方法創建深度,圖像和用戶節點。一個單獨的線程開始它的表現非常簡單的循環(基於UserTracker.net爲例):OpenNI C#封裝:WaitAnyUpdateAll超時
private void RunThread()
{
while(true)
{
try
{
context.WaitAnyUpdateAll(); //context is an OpenNI context object.
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
//process some data
}
}
這只是正常了一段時間,直到相機接收到不改變形象。經過短暫的,同時顯示以下異常:
A timeout has occured when waiting for new data!
at OpenNI.Context.WaitAnyUpdateAll()
at <file described above>
在此之後則拋出異常,context.WaitAnyUpdateAll
所有後續調用將拋出同樣的異常,無論輸入是什麼。過了一會兒,錯誤信息變爲:
OpenNI.StatusException: The server has disconnected!
at OpenNI.Context.WaitAnyUpdateAll()
at <file described above>
如何處理使用OpenNI的新輸入?我知道,如果沒有新的數據可用,我們會得到一個超時異常,但我們如何從這個異常中恢復?