我有一个关于函数的c++指针的问题。
我的体系结构中有3个模块:模块A、模式B和模件C。
模块B和C将由模块A创建。
模块B具有决定何时停止所有模块的逻辑。
为此,我认为模块A可以将指向函数的指针传递给模块B。在该功能中,模块A将停止模块B、C,然后停止其自身。这些模块具有pthread。
你认为这可能是个不错的选择吗?
我遵循了以下步骤:
- 我在表格a上创建了一个停止方法
- 在模块B中,当我把它放在停止所有模块时,我调用作为指针传递的函数
如何在表单B的构造函数中传递函数指针?
这个想法听起来不错,但你需要一些变速箱。
让我们来模拟一下场景:
B调用A::StopAll()A: :StopAll()终止模块B我们在这个函数中返回,模块被杀死。
如果"停止"意味着一些合乎逻辑的东西,保持函数的完整性,并且调用者不接触任何东西,那么这可能会起作用。但如果这意味着像卸载b.DLL一样,你就会遇到问题。
目前还不清楚线程是如何运行的,可能也有类似的问题。
如果你有一些消息泵,从B触发的函数应该只向自己发布一条消息并退出,以允许在B中完成调用。然后消息执行将只启动killing。如果你有多个线程而不是消息泵,你可能需要提醒另一个线程。