鸿蒙学习 - taskPool 多线程学习

43 阅读1分钟

鸿蒙学习 - taskPool 多线程学习

taskPool 开启子线程,耗时任务的方法需要 @Concurrent修饰。

import taskpool from '@ohos.taskpool';

@Concurrent
function add(number1: number, number2: number) {
  return number1 + number2 // 模拟复杂任务
}

async function testTaskAction() {
  try {
    let task: taskpool.Task = new taskpool.Task(add,2,3)
    let res = await taskpool.execute(task)
    console.log("testTaskAction结果:" + res.toString())
  } catch (e) {
    console.log("testTaskAction失败了: " + e)
  }
}

@Entry
@Component
struct Index {

  build() {
    Column(){

    Button("测试按钮").onClick(() => {
      testTaskAction() // 这个会在子线程执行,打印的话,在下面的log后面
      console.log("1234") // 这个会立刻执行。
    })

    }
  }
}