我有一个回调函数系统来组织我的引擎的初始化和运行时进程。我有一个类管理所有这些函数指针,它们存储在STL向量容器中。它们通过类似(* iterator) - > execute()的包装类来调用。C++调用函数指针
当我调用这些指针时,我在for循环中执行它。所以如果我有20个函数指针被注册,它将会遍历所有20个函数指针,并找到匹配的类型并通过包装类调用函数。
我的问题是,当指针函数被调用时,循环是否等待该函数结束其执行,然后继续循环或循环继续在第一个函数运行时继续调用函数?请注意,这一切都发生在同一个线程上。
我做了一些测试,似乎循环不会暂停执行其他功能。这似乎是某种伪线程? ......这看起来不正确。但是,结果可能不正确,因为我使用std :: cout将结果打印到控制台,所以我不知道是否由于某些不知道的ostream功能而发生这种情况。
如果你可以发布一些代码会更容易吗?但是,for循环会在调用下一个函数之前等待每个函数完成。其中一个功能可能会产生一个线程。 – hmjd 2012-04-02 21:16:40
很可能这是因为你没有用每个std :: cout刷新流。你是用std :: endl还是用“\ n”来终止行? – 2012-04-02 21:17:39
使用您为每次调用检查的某种全局变量检查它?如果你的代码不是异步的,这种行为不应该发生。 – chikuba 2012-04-02 21:19:48