c++pthread和指向函数的指针

c++ pthread and pointer to function

本文关键字:指针 函数 c++pthread      更新时间:2023-10-16

我有一个关于函数的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。如果你有多个线程而不是消息泵,你可能需要提醒另一个线程。