我的平台是
QT4的,
已经被知道的情况是:QSqltablemodel 不是
线程安全,在
多线程中使用同一个QSqltablemodel会导致程序崩溃.
但是怎么才能把 QSqltablemodel 对象的
指针作为返回值传递出去呢?
我想这样做:
- QSqltablemodel * getXXXmodel()
- {
- QSqltablemodel* model = new QSqltablemodel(this);
- model->setTable("T_table");
- //.....do filter or something else............
- if(model->select())
- {
- return model ;
- }
- return false;
- }
但是这样就内存泄露了(虽然我看到很多Qt的exemple和demo都这样做过,但是我自己却不敢),我设置而来parent但是作为一个长时间存在的单例模式,在程序的生命周期内,这些分配的内存都是浪费的.
我想问下
①什么时候才能在函数中无限制的new object 而不考虑delete
②怎么合适地返回model,既不会内存泄露,又不会有线程安全
问题.