由于我们自定义Table中需要实现排序,如下图所示:
考虑到如果数据量太大的情况,为了避免主线程阻塞,所以我们添加多线程排序功能,为了方便大家更好学习qml组件,所以学习WorkerScript实现多线程,无需C++
1.描述
使用 WorkerScript 在新线程中运行操作。这对于在后台运行操作很有用,这样主 GUI 线程就不会被阻塞。
消息可以在新线程和父线程之间传递,使用sendMessage() 和onMessage()处理程序。
属性如下所示:
- ready : bool, 只读属性,表示source已加载完成,可以接收到WorkerScript.sendMessage()
- source : url, 设置实现线程操作处理程序的 JavaScript 文件的 url, 里面要实现message信号处理函数,也就是WorkerScript.onMessage()
信号如下所示:
- message(jsobject msg) : 当有消息时发出此信号, 然后就可以通过信号接受处理函数进行处理msg参数
方法如下所示:
- sendMessage(jsobject message) : 用来向另一个线程发送要处理的message数据,然后就会触发另一个线程的message信号,该message对象只能包含以下类型的值: