假设我有2个线程: A 和 B,A是主线程。在线程A中,有两个on_button_click插槽。第一个插槽如下:
on_button_one_clicked(){
myObject_one = new myObject(this);
myObject_one->setParent(map);
myObject_two = new myObject(this);
myObject_two->setParent(map);
...
}
第二个是:
on_button_two_clicked(){
foreach(myObject* i, map->childItems){
delete i;
}
}
在这里,myObject和map都是
QGraphicsItem
。在线程B中,发出一个信号以触发线程A的槽函数:slot_triggered_by_signal_from_thread_B(){
foreach(myObject* i, map->childItems){
i->do_some_thing();
}
}
这个安全吗?当代码到达i->do_some_thing这一行并遇到空指针而崩溃时,会发生什么?