QThread Slots behavior

2019-08-31 06:02发布

问题:

I am new to C++ and Qt and I am wondering what happens if I emit a signal in object1 running in thread1, to another object2 running in another thread2 and object2 is running an infinite loop for processing? Will the slot in object2 never be called since the thread2 is busy running the loop?

回答1:

I am new to C++ and Qt and I am wondering what happens if I emit a signal in object1 running in thread1, to another object2 running in another thread2 and object2 is running an infinite loop for processing? Will the slot in object2 never be called since the thread2 is busy running the loop?

Yes and no.

If you do not process events, then the thread will not chance to process the events, signals, and slots as you would expect.

However, you could make an event loop there that occasionally does process the events coming in, and then it would work as you expect it to.

My longer explanation than this is available here for people who would like to get more detailed information about the topic.