QtConcurrent试图在线程中运行一个函数

时间:2012-06-24 12:41:12

标签: c++ qt concurrency

我在其他一些包含.cc:

中有这个功能
void MakeMeshStructure(MeshStructureLayers layers,
  Handle_AIS_InteractiveContext theContext,
  Handle_TDocStd_Document aDoc,
  MyMesh & mesh, 
  int detail_vertex,
  double insulation_thickness,
  OpenMesh::VPropHandleT<MyMesh::Scalar> _max_beam_offset)

在MainWindow中我试图在一个线程中运行这个函数:

QFuture<void> future = QtConcurrent::run(MeshStructure3::MakeMeshStructure,
  layers, 
  myCadFrame->getWidget()->getContext(),
  myController->getDocument()->getOcafDoc(), 
  mesh, 
  detail_vertex, 
  toolBox->insulation_thickness_SpinBox->value(), 
  max_beam_offset_);

编译器说它有太多的争论。

1 个答案:

答案 0 :(得分:0)

对于超过5个参数,您需要使用Boost :: bind,请参阅Using Bound Function Arguments