gpt4 book ai didi

c++ - 如何使用 TBB 在单线程中运行一个函数

转载 作者:行者123 更新时间:2023-11-30 03:22:22 26 4
gpt4 key购买 nike

我正在尝试使用 TBB只使用一个线程来运行这段代码,但我不知道如何进行。

我读到我应该使用 tbb::task_group但我不知道如何使用它。

void CScene::load(const std::string &_name) {
if (!references++) {
setName(_name);
Resources.setCurrentScene(my_name);

TEntityParseContext ctx;
ctx.name = my_name;
parseScene("data/scenes/" + my_name + ".scene", ctx);

dynamic = ctx.dynamic_scene;
for (CHandle e : ctx.entities_loaded) {
entities.push_back(e);
}

Engine.getScriptingModule().raiseEvent(CModuleScripting::SCENE_LOADED,
my_name);

Resources.setCurrentScene("system");
}
}

顺便说一句,实体是一个std::vector<CHandle>这是类的私有(private)变量

最佳答案

您只需将 lambda 传递给 task_group::run 函数:

CScene cs;
tbb::task_group g;

g.run([&cs]{cs.load("Name");});

// maybe do some other work here

// This function either waits or executes the lambda
// if no other thread is executing it
g.wait();

关于c++ - 如何使用 TBB 在单线程中运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184855/

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