HarmonyOS @ohos.taskpool(启动任务池)?

@Concurrent
function printArgs(args: number): number {
  console.info("printArgs: " + args);
  return args;
}

taskpool.execute(printArgs, 100).then((value: Object) => { // 100: test number
  console.info("taskpool result: " + value);
});

如果丢进去的任务是网络请求的下载,是用taskpool cancel取消了这个下载任务,实际上下载的请求并没有被停止吧?只是taskpoll没了这个任务 但是下载不会被中止对吗?什么样的场景使用taskpoll比较合理。

阅读 654
1 个回答

在taskpool等待队列中的任务,取消该任务后该任务将不再执行,并返回undefined作为结果,若任务已经在taskpool工作线程执行,取消该任务并不影响任务继续执行,执行结果在catch分支返回,taskpool主要是为应用程序提供一个多线程的运行环境,因为taskPool的工作线程会绑定系统的调度优先级,所以建议在需要设置优先级的任务场景下使用,如:图库直方图绘制场景,或者需要频繁取消的任务,如:图库大图浏览场景。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进