我有一个应用程序在某个时候做一些繁重的工作,这会阻塞UI约10秒钟。由于加载动画和我的服务位于主线程上,因此我决定使用本机脚本工作程序。 UI不再冻结,但是此过程将花费更多时间(100秒对10秒)。
有人对什么地方有问题吗?
我的worker.ts
很简单:
import "tns-core-modules/globals";
import { DatabaseService } from "../services/database.service";
const context: Worker = self as any;
const databaseService: DatabaseService = new DatabaseService();
context.onmessage = msg => {
databaseService.fillWithMissions(msg.data).then((n:number)=>{
(<any>global).postMessage("test");
});
};
在我的组件上收到postMessage时,终止此调用后,我呼叫了另一个类似的工作程序,仅此而已。两者都需要大约100s。
如果我从主要组件调用我的databaseService.fillWithMissions()
方法,UI会冻结,但是运行这两种方法大约需要10秒。