【发布时间】:2014-04-05 21:16:12
【问题描述】:
我正在尝试让 PCL Visualizer 演示示例(所有代码在此处:http://pointclouds.org/documentation/tutorials/pcl_visualizer.php)适用于 Windows、PCL 1.6、32 位版本。
除了交互自定义部分之外,它工作正常,具有讽刺意味的是,这是我最感兴趣的部分。在 main 方法的 spinOnce(100) 行发生未处理的异常。从我所做的长期搜索来看,它似乎与 VTK 紧密相连,不是线程安全的,并且键盘/鼠标回调会干扰 VTK 窗口。但是,我认为我没有完全理解这一点,并且可能会出错。我在 stackoverflow (using "pcl::visualization" in different threads from different instance of a class) 中发现了一个非常相似的问题,我尝试在 spinonce 周围使用 scoped_locks,正如他所建议的那样,但我认为我做得不对。
有没有人设法在 win32 上完全使用这个例子?作为参考,这是我锁定 spinonce 的糟糕尝试:
while (!viewer->wasStopped ())
{
boost::mutex vis_mutex; //storage for static lock
boost::mutex::scoped_lock lock(vis_mutex);
viewer->spinOnce ();
boost::this_thread::sleep (boost::posix_time::microseconds (100000));
}
提前致谢!
【问题讨论】:
标签: multithreading locking point-cloud-library