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.