作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好来自 SO 的好人!
今天我一直在问自己很多关于我试图实现的事情。
说到这里,我正在尝试使用 Qt 编写某种终端代码,它将用于显示来 self 的应用程序不同部分的消息。
现在我实现了一个模型类(派生自 QAbstractTableModel
),代表这些消息行的 QList
并打算将它们映射到我的终端窗口中的小部件(考虑了 DataWidgetMapper
)。
但后来我突然想到,如果我的应用程序的不同部分试图同时添加新消息怎么办?
它甚至可能发生吗?
实现 BeginInsertRow
是否与安全保护这些事情有关?
长话短说,我很困惑。我自己找不到太多情报。所以我开始怀疑我是否以正确的方式这样做。
我是 Qt 世界的新人。
提前致谢:)
最佳答案
由于您是在QAbstractItemModel
之上实现您自己的模型,因此它是否是线程安全的取决于您。您必须设计自己的内部数据模型,因此在模型内更改和访问数据的方法是您自己的。您可以完全控制它们的内容,因此您可以添加任何您需要的线程锁定机制,以确保不同的线程不能同时更新和访问数据。所有提供数据访问的 QAbstractItemModel
方法最终都会调用您的派生方法。
关于c++ - QAbstractItemModel 子类线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42280360/
我是一名优秀的程序员,十分优秀!