gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:32:56 29 4
gpt4 key购买 nike

我有一个关于 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 中的调用。然后消息执行只会开始杀死。如果您有多个线程而不是消息泵,您可能需要提醒不同的线程。

关于c++ pthread和指向函数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308477/

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