经过测试使用如下类型代码
let dataBuffer: ArrayBuffer = buffer.slice(0, buffer.byteLength);
taskGroup = new taskpool.TaskGroup();
task = new taskpool.Task(recogBuffer, buffer, cardNo, warpBuffer); // 100: test number
taskGroup.addTask(task);
// 线程池
await taskpool.execute(taskGroup).then((res: object) => {
});
slice函数作用是将对象复制到一个新地址的新对象,所以重复创建或者单次创建不进行释放操作会导致内存泄漏问题,此外和taskpool配合使用才会出现内存泄漏,不使用taskpool或者不使用slice均不会出现内存泄漏问题。
注: 此代码段在视频流中使用出现异常,经测试单次调用不会出现。