@Concurrent装饰器:校验并发函数

2024-02-16 13:44 更新

在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。

说明

从API version 9开始,该装饰器支持在ArkTS卡片中使用。

装饰器说明

@Concurrent并发装饰器

说明

装饰器参数

无。

使用场景

仅支持在Stage模型的工程中使用。

装饰的函数类型

允许标注async函数或普通函数。禁止标注generator、箭头函数、method。不支持类成员函数或者匿名函数。

装饰的函数内的变量类型

允许使用local变量、入参和通过import引入的变量。禁止使用闭包变量。

装饰器使用示例

  1. import taskpool from '@ohos.taskpool';
  2. @Concurrent
  3. function add(num1: number, num2: number): number {
  4. return num1 + num2;
  5. }
  6. async function ConcurrentFunc(): Promise<void> {
  7. try {
  8. let task: taskpool.Task = new taskpool.Task(add, 1, 2);
  9. console.info("taskpool res is: " + await taskpool.execute(task));
  10. } catch (e) {
  11. console.error("taskpool execute error is: " + e);
  12. }
  13. }
  14. @Entry
  15. @Component
  16. struct Index {
  17. @State message: string = 'Hello World'
  18. build() {
  19. Row() {
  20. Column() {
  21. Text(this.message)
  22. .fontSize(50)
  23. .fontWeight(FontWeight.Bold)
  24. .onClick(() => {
  25. ConcurrentFunc();
  26. })
  27. }
  28. .width('100%')
  29. }
  30. .height('100%')
  31. }
  32. }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号