gpt4 book ai didi

c++ - Boost 状态图库——如何实现耗时的转换

转载 作者:太空狗 更新时间:2023-10-29 22:53:42 25 4
gpt4 key购买 nike

在我们的项目中,我们有 UI 和逻辑(可以表示为状态机)。此步进机中某些步骤之间的转换很长(受 IO 限制)。我们不想在转换过程中一直窃取我们的 UI 线程。因此,我们正在寻找一种方法来在单独的线程中执行此转换,然后在转换完成时更新 UI。

我目前将 boost 状态图库评估为实现这种逻辑的选项之一,我想问一下使用它实现这种长时间转换功能的正确方法是什么?

谢谢。

最佳答案

状态之间的转换应该由事件触发,而不是长时间的操作。

如果您的逻辑有任何长操作,最好将 UI 放入其自己的线程中,否则您将无响应。

您始终可以在各自的线程中拥有两个独立的状态机,然后使用线程间通信让每个状态机相互触发。消息传递可能是最可靠的方法。 (boost::interprocess::message_queue 可能有点矫枉过正,但它会起作用)

关于c++ - Boost 状态图库——如何实现耗时的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com