作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
我是一名优秀的程序员,十分优秀!