#鸿蒙通关秘籍#如何实现鸿蒙HarmonyOS NEXT的周期性任务处理?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
编程小英雄

在HarmonyOS NEXT中,实现周期性任务处理可以通过定时器和taskpool组合的方式完成。以下是一个示例,使用定时器每3秒调用一次任务处理函数:

@Concurrent

function ServiceHandle(pars: number): number {
  hilog.info(0x0000, 'testTag', 'start ServiceHandle:%{public}d', pars);
  let result = 0;
  return result;
}

let count = 0;

function TimerOutHandle(pars:number) {
  count++;
  let task: taskpool.Task = new taskpool.Task(ServiceHandle, pars);
  hilog.info(0x0000, 'testTag', 'Timer handle count :%{public}d,pars %{public}d', count, pars);
  taskpool.execute(task, taskpool.Priority.HIGH).then((res: object) => {
    hilog.info(0x0000, 'testTag', 'ServiceHandle result :%{public}d', res);
    if (g_callback != null) {
      g_callback(count);
    }
  });
}

let timerId = -1;

export function TimerTest() {
  count = 0;
  let value = 88;
  timerId = setInterval(TimerOutHandle, 3000, value);
}

每隔3秒,TimerOutHandle函数会通过taskpool异步执行ServiceHandle任务。


分享
微博
QQ
微信
回复
7天前
相关问题