【发布时间】:2021-03-14 13:24:09
【问题描述】:
在下面的代码中,listmodel 在线程之间共享,并且设置了一个计时器来更新模型的值,这些更改应该在 workerscript (docs) 中反映(期望的行为)。但是在workerscript中,它总是初始值,因为它不知道数据已经改变了。
// 主文件
Window {
id: window
visible: true
width: 150
height: 200
title: qsTr("Hello Testing")
DataModel {
id: model
}
Timer {
interval: 1000
running: true
repeat: true
onTriggered: {
model.setProperty(0, 'datum', new Date().toLocaleString())
}
}
WorkerScript {
id: bgScript
source: "script.js"
}
Timer {
interval: 1000
running: true
repeat: true
onTriggered: {
bgScript.sendMessage({'model': model})
}
}
Text {
id: datum
text: qsTr(model.get(0).datum)
}
}
// 工人脚本
WorkerScript.onMessage = function (arg) {
console.log(arg.model.get(0).datum) // value is "Date Time" on every call
}
// 型号
ListModel {
ListElement {
datum: "Date Time"
}
}
【问题讨论】: