Sqlite qml本地存储查询线程化
是否可以在spererate线程中运行qml中的localstorage数据库查询? 我对一个大数据库的查询需要500毫秒,这会阻塞用户界面的响应 我的相关代码:Sqlite qml本地存储查询线程化,sqlite,qt,qml,Sqlite,Qt,Qml,是否可以在spererate线程中运行qml中的localstorage数据库查询? 我对一个大数据库的查询需要500毫秒,这会阻塞用户界面的响应 我的相关代码: property var db: null function openDB() { if(db !== null) return; db = LocalStorage.openDatabaseSync("dbname", "0.1", "dbname", 3000000000); } function runQu
property var db: null
function openDB() {
if(db !== null) return;
db = LocalStorage.openDatabaseSync("dbname", "0.1", "dbname", 3000000000);
}
function runQuery(query)
{
var results
db.readTransaction(function(tx) {
results = tx.executeSql(query)
});
return results;
}
我希望在不阻塞ui的情况下每秒运行一次查询。
e、 g
稍后,我将在结果上循环,以图形的形式显示它们。
我查看了WorkerScript
,但是对于WorkerScript,我必须使用js文件,而不能使用LocalStorage.openDatabaseSync
如何在不阻塞UI的情况下在qml中运行查询?我会将查询放在@folibis中,正如我在问题中所述,我尝试过,但是如何在js脚本中使用LocalStorage.openDatabaseSync?好的,看来
LocalStorage
在WorkerScript
中无法访问,抱歉。运行某些任务而不阻塞GUI的唯一方法是在单独的线程中运行该任务。“代码>工作脚本< /Cord>是无效的,因此在这种情况下,我猜这个解决方案可能是创建自定义C++项目,它访问SQLite DB并提供一些功能给QML。C++似乎确实是答案,也可以看到:
var osresult = runQuery('SELECT * FROM os_data')