HarmonyOS应用开发实战:猫猫大作战-taskpool-execute 任务提交
前言taskpool.execute将任务函数提交到后台线程池执行。在「猫猫大作战」中通过 taskpool.execute 提交耗时计算和文件 I/O 操作避免阻塞 UI 线程。一、execute 基础import { taskpool } from kit.ArkTS; Concurrent function computeScore(cats: Cat[]): number { let score 0; for (const cat of cats) { score CatConfig[cat.level].score; } return score; } async function calculateScoreAsync(cats: Cat[]): Promisenumber { const result await taskpool.execute(computeScore, cats); return result; }二、多参数任务Concurrent function saveGameData(score: number, time: number, player: string): boolean { // 后台保存 console.info(保存游戏: ${player}, ${score}分, ${time}秒); return true; } // 提交多参数 await taskpool.execute(saveGameData, this.score, this.gameTime, this.playerName);三、优先级// 高优先级任务如保存数据 taskpool.execute(saveGameData, score, time, player, taskpool.Priority.HIGH); // 低优先级任务如数据统计 taskpool.execute(computeStats, data, taskpool.Priority.LOW);优先级常量适用场景HIGHPriority.HIGH用户主动触发MEDIUMPriority.MEDIUM一般后台任务LOWPriority.LOW非关键统计四、执行限制限制说明函数必须 Concurrent编译检查参数可序列化基本类型、Array、对象无闭包引用不能引用外部变量单次执行 3 分钟超时自动终止五、最佳实践耗时操作用 taskpool文件 I/O、大量计算UI 操作不要放在 taskpool不能在后台线程更新 UI设置合理优先级用户主动操作用 HIGH错误处理taskpool 内 try-catch总结taskpool.execute 提交任务到后台线程保持 UI 流畅。核心要点Concurrent标记函数、execute(fn, ...args)提交、 优先级控制执行顺序。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源taskpool 文档第 144 篇taskpool第 146 篇sendable第 148 篇task-group