I have a QThread derived class that communicates with the main thread by sending QEvents to it.
What is the best way for the main thread to communicate with the second thread?
The main thread has a pointer to the second one.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The best way to communicate between objects in Qt is to use signals and slots. It is a thread-safe way that is handled by the event loop and requires no locking on your part. You can also use events, though that use seems a little weird – an event is a notification of something happening, not a tool to chat.
You can also use threading primitives like QMutex, QSemaphore, QWaitCondition and QReadWriteLock (same as a QMutex, but as it’s name suggests, allows you to lock for either reading or writing, not both at the same time).
You should read the Qt documentation, specifically I recommend you start with the Thread Support in Qt page.