C++ OpenMesh多线程网格导入

C++ OpenMesh多线程网格导入,c++,multithreading,openmesh,C++,Multithreading,Openmesh,我找不到任何有关OpenMesh操作线程安全的信息, 具体来说,我正在寻找一个多线程网格导入。目前,我正在通过以下方式填充网格: OpenMesh::IO::ImporterT 在单线程中。但如果可能的话,我不想在多个线程中执行此操作,而不阻塞: meshImporter.add_face(faceHandle); meshImporter.add_vertex(vertex); 但是它比我想象的要慢一点(它消耗了下一次操作的一半以上时间——对同一网格的抽取)。没有一个OpenMesh数据结

我找不到任何有关OpenMesh操作线程安全的信息, 具体来说,我正在寻找一个多线程网格导入。目前,我正在通过以下方式填充网格:

OpenMesh::IO::ImporterT
在单线程中。但如果可能的话,我不想在多个线程中执行此操作,而不阻塞:

meshImporter.add_face(faceHandle);
meshImporter.add_vertex(vertex);

但是它比我想象的要慢一点(它消耗了下一次操作的一半以上时间——对同一网格的抽取)。

没有一个OpenMesh数据结构提供线程安全的修改。诸如
添加面
添加顶点
等操作需要更新其他元素类型的索引,以保持数据结构处于一致状态。因此,在同一网格上并发调用这些方法可能会导致网格数据损坏

由于
OpenMesh::IO::ImporterT
主要将其调用转发给底层mesh,因此适用相同的限制:必须同步对OpenMesh的所有更新