首页 > 解决方案 > 英特尔 TBB 文件访问

问题描述

我正在学习使用英特尔 TBB 库,但遇到了一个奇怪的错误。我的源节点使用 fstream 从文件中读取数据,但是如果我尝试在类析构函数中关闭 fstream,则程序段错误。有谁知道为什么在使用英特尔 TBB 时不能在源节点类的析构函数中关闭文件流?还有什么是修复,所以我可以在完成读取后正确关闭文件?

标签: segmentation-faultinteltbbtbb-flow-graph

解决方案


没有源代码很难判断,但在这种情况下,通常是对象生命周期的问题。当你提交一个待执行的 TBB 任务时,它将在稍后的某个时间点执行,由 TBB 任务调度程序决定。如果此类任务引用了一个对象(通过指针或引用),您需要确保在任务执行时引用的对象仍然有效(未销毁)。


推荐阅读