我目前有一个程序,它使用繁忙的池和一堆线程来监视对象的状态、处理数据和传递数据。这一切都很难管理/浪费 cpu 时间。我正在考虑删除线程并使用信号/插槽,因为我的代码都没有“阻塞”。
所以我会用信号表示我的对象的状态,这很容易。更难的是我还想使用插槽来信号数据,并传递数据。
基本上: A->SignalIHAVEDATA(B.slot() and C.slot()) B 和 C 可能无法处理数据。所以我应该在 B 和 C 中保留一个标志,告诉他们它们是数据。或者我应该每隔 X 毫秒重新发出一次信号,直到数据被采集。
还..
假设 B 接受数据。在 B.Slot 内部,它需要 handleToA->getData(); 是否有意义?&& 处理数据?&& 信号另一件事。
如果我发出 signalA 并在 slotA 内发出一个 signalB 会在 slotA 返回之前处理 slotB 吗?(如果这条链很长,那么 slotA 返回可能需要一段时间?)
感谢您的帮助:)