1,写一个耗时很长的任务,在方法前加上@Concurrent
@Concurrent//池化多线程关键字,如果类中包含,则加上@Sendable
function myadd(a:number,b:number):number
{
console.time("add")//计时方法,用于某段代码耗时
let he:number=0;
for(let i=0;i<21000000;i++)//耗时很长的任务
{
he=he+a+b+i
}
console.timeEnd("add")
return he
}
2,写一个按钮启动这个线程,
Button("任务池线程")
.onClick(async ()=>{
/*
第一个参数是要执行的耗时任务,第二个参数是优先级
优先级可设置,但不常用,详见官方文档taskpool
*/
let a=await taskpool.execute(myadd,2)
console.log(a+"")
})
这样就实现一个简单的多线程,缺陷,执行时间不能大于3分钟,超时自动终止。长时间的多线程需要worker。