I want to pass a significant amount of data between threads, using the signal/slot mechanism. I was planning to pass a pointer to the data, but I have learned that this is frowned on. E.g. wysota wrote: "Never emit pointers (or non-const references) across threads, they might become invalid before the receiving thread has a chance to process them. Make a copy and send the copy instead."

I believe I can make sure that the pointer doesn't become invalid, but I don't like to go against the advice of someone much more expert than me. What would be the recommended approach when creating data copies is time-consuming? The app is transmitting data to update a VTK scene that has moving actors.