“线程 '' (0x1b50) 以代码 0 (0x0) 退出,基本上说:
ID 为 6992 的线程运行并成功完成了操作。
系统错误代码 (0-499)
问题是,设备会停止跟踪吗?
这是我的 Leap Motion 应用程序中的 0x0(工作正常):
线程“vshost.NotifyLoad”(0x364) 已退出,代码为 0 (0x0)。线程 '' (0x3348) 以代码 0 (0x0) 退出。线程“vshost.LoadReference”(0x37c8)已退出,代码为 0(0x0)。
另外,附带说明一下,因为它与错误代码无关 - 您是否从控制器中删除了侦听器,然后在应用程序关闭时将它们都处理掉?不正确处理物品会导致问题。
第二个注意事项 - onExit 和 onDisconnet 是两个不同的东西。
onDisconnect(controller:Controller):void
当 Controller 对象与 Leap Motion 软件断开连接时调用。听众
onExit(controller:Controller):void
当此 Listener 对象从 Controller 中移除或 Controller 实例被销毁时调用。
如果有人遇到类似问题,我在查看代码后通过电子邮件发送的回复是:
我查看了代码,因为您只向我发送了几个文件,我不得不注释掉对未包含在 zip 中的类的引用。
该代码在 3 种不同的 Leap Motion 设备上运行良好 - 当我从该方法中注释掉时,我的建议是:
更新 SDK。我使用了 .Net 4 dll 和最新版本的 SDK,今天是:v.1.0.8.7665
使用完对象后将其丢弃。使用后处理 Frames,从 Controller 中移除侦听器,并在不再使用设备或关闭应用程序时处理 Controller。
我注意到他们正在创建一些 Timers 和 DispatcherTimers,但我找不到任何关于它们被使用的地方的引用。这些是用来做什么的?DispatcherTimer 不属于 Windows 窗体应用程序。
我最好的猜测——我讨厌猜测——是存在线程问题,或者对象没有被正确处理——或者您使用的 SDK 版本存在错误。
我在 GitHub 上有两个应用程序 - 随意使用代码。有一个用于 WPF 和一个用于 Windows 窗体 - 两者都需要针对最新的 SDK 进行更新,因为某些东西在更高版本的 SDK 中已被弃用(例如 Screen 类)。
WPF:
https ://github.com/IrisClasson/Leap-Motion
Windows 窗体:
https ://github.com/IrisClasson/LeapMotion_WinForms_Demo_OLD_SDK
免责声明:我做的不多,如果有任何 WinForms 开发