在ArkTS中如何处理耗时操作?

在ArkTS中如何处理耗时操作?

HarmonyOS
2024-08-05 17:55:33
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
janux

耗时操作建议放到worker线程中进行处理

Worker的开发步骤如下:

(1)在工程的模块级build-profile.json5文件的buildOption属性中添加配置信息。

"buildOption": {
    "sourceOption": {
      "workers": [
        "./src/main/ets/workers/worker.ts"
      ]
    }
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

(2)根据build-profile.json5中的配置创建对应的worker.ts文件。

import worker from '@ohos.worker';
let parent = worker.workerPort;
// 处理来自主线程的消息
parent.onmessage = function(message) {
console.info("onmessage: " + message)
// 发送消息到主线程
parent.postMessage("message from worker thread.")
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

(3)主线程中使用如下方式初始化和使用worker

import worker from '@ohos.worker';

    
let wk = 
    
new worker.ThreadWorker("entry/ets/workers/worker.ts");

// 发送消息到worker线程
wk.postMessage("message from main thread.")
// 处理来自worker线程的消息
wk.onmessage = 
    
function(message) {
    console.info("message from worker: " + message)
    // 根据业务按需停止worker线程
    wk.terminate()
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
分享
微博
QQ
微信
回复
2024-08-05 22:40:57


相关问题
鸿蒙开发如何处理异步操作
372浏览 • 0回复 待解决
arkts如何执行耗时任务?
287浏览 • 1回复 待解决
ArkTS后台代理提醒,需要如何处理
2015浏览 • 1回复 待解决
ArkTS语法校验报错,该如何处理啊?
1732浏览 • 1回复 待解决