用for循环遍历vector,然后用thread开启线程,打印元素的name:
for (int i = 0; i < command_list.size(); i++) {
thread([=]() {
cout << command_list[i]->GetName() << endl;
}).detach();
}
然后报错了,定睛一看:vector越界!?
然后试了一下午,最后发现把detach改为join就不报错,但我又必须用detach,有人知道为什么吗?以及如何解决?