HarmonyOS taskpool.SequenceRunner 拷贝传递 ArrayBuffer 出现异常

利用 ImageReceiver 从摄像头获取帧 ArrayBuffer,然后将 ArrayBuffer 传入线程池做耗时算法分析。由于 ArrayBuffer 后续还需要使用,所以设置了 setCloneList 希望拷贝传递。代码如下:

private runner: taskpool.SequenceRunner = new taskpool.SequenceRunner(); 
 
let task = new taskpool.Task(run, buffer, width, height); 
task.setCloneList([buffer]); 
let result = await this.runner.execute(task);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

发现报如下错误:10200006 An exception occurred during serialization, taskpool: failed to serialize arguments.

HarmonyOS
2024-11-25 11:02:36
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple
import taskpool from '@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); 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

如果注释掉@Concurrent,就会报10200006 An exception occurred during serialization, taskpool: failed to serialize arguments.

分享
微博
QQ
微信
回复
2024-11-25 16:10:03
相关问题
JS调用PA出现RemoteInterfaceProxy异常
7774浏览 • 2回复 待解决
HarmonyOS拷贝拷贝
1323浏览 • 1回复 待解决
HarmonyOS 文件拷贝示例
698浏览 • 1回复 待解决
HarmonyOS pixelMap转成ArrayBuffer
1231浏览 • 1回复 待解决
HarmonyOS str转ArrayBuffer
871浏览 • 1回复 待解决
HarmonyOS 沙箱文件拷贝
1273浏览 • 1回复 待解决