QThread and pointers
-
Is createMembers() called before or after you move the object to other thread?
Do you use queued connection?
Is it necessary to create these objects on the heap via new? -
Then it should be OK.
The slot is executed in the thread where the object resides, so the objects are created in the same thread.
Regarding sharing the pointers with other objects: in which thread are those other objects? -
@beecksche said:
CreateMembers() is called after i moved the workobject to the thread.
It makes a whole lot of difference how you call it. Is it connected to a signal, do you call it explicitly?
-
@beecksche
Then it's perfectly fine. -
@beecksche
No worries.
Although,QScopedPointer
might be appropriate here (looking at your code), you may want to check it out. -
@beecksche said:
The advatage of a QScopedPointer is that you don't have to care about the destruction of the object, right?
Yes. It's a thin wrapper around the raw pointer and will
delete
the held reference when it goes out of scope. The idea is to use the stack basedQScopedPointer
object to manage the heap-allocated object it's referencing.Kind regards.