Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
8d70032a
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
8d70032a
编写于
7月 30, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 30, 2023
浏览文件
操作
浏览文件
下载
差异文件
!21191 add taskpoolInfo information
Merge pull request !21191 from buzhuyu/master
上级
033488a9
31dab72a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
141 addition
and
0 deletion
+141
-0
zh-cn/application-dev/reference/apis/js-apis-taskpool.md
zh-cn/application-dev/reference/apis/js-apis-taskpool.md
+141
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-taskpool.md
浏览文件 @
8d70032a
...
...
@@ -587,6 +587,86 @@ setTimeout(()=>{
},
1000
);
```
## State<sup>10+</sup>
表示任务(Task)状态的枚举。
**系统能力:**
SystemCapability.Utils.Lang
| 名称 | 值 | 说明 |
| --------- | -------- | ------------- |
| WAITING | 1 | 任务正在等待。 |
| RUNNING | 2 | 任务正在执行。 |
| CANCELED | 3 | 任务已被取消。 |
## TaskInfo<sup>10+</sup>
任务的内部信息。
**系统能力:**
SystemCapability.Utils.Lang
### 属性
**系统能力:**
SystemCapability.Utils.Lang
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ------------------ | ---- | ---- | ------------------------------------------------------------- |
| taskId | number | 是 | 否 | 任务的ID。 |
| state |
[
State
](
#state10
)
| 是 | 否 | 任务的状态。 |
| duration | number | 是 | 否 | 任务执行至当前所用的时间,单位为ms。当返回为0时,表示任务未执行;返回为空时,表示没有任务执行 |
## ThreadInfo<sup>10+</sup>
工作线程的内部信息。
**系统能力:**
SystemCapability.Utils.Lang
### 属性
**系统能力:**
SystemCapability.Utils.Lang
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ---------------------- | ---- | ---- | -------------------------------------------------------- |
| tid | number | 是 | 否 | 工作线程的标识符。返回为空时,代表没有任务执行。 |
| taskIds | number[] | 是 | 否 | 在当前线程上运行的任务id列表。返回为空时,代表没有任务执行。 |
| priority |
[
Priority
](
#priority
)
| 是 | 否 | 当前线程的优先级。返回为空时,代表没有任务执行。 |
## TaskPoolInfo<sup>10+</sup>
任务池的内部信息。
**系统能力:**
SystemCapability.Utils.Lang
### 属性
**系统能力:**
SystemCapability.Utils.Lang
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------- | -------------------------------- | ---- | ---- | -------------------- |
| threadInfos |
[
ThreadInfo[]
](
#threadinfo10
)
| 是 | 否 | 工作线程的内部信息。 |
| taskInfos |
[
TaskInfo[]
](
#taskinfo10
)
| 是 | 否 | 任务的内部信息。 |
## taskpool.getTaskPoolInfo<sup>10+</sup>
getTaskPoolInfo(): TaskPoolInfo
获取任务池内部信息。
**系统能力:**
SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ----------------------------------- | ------------------ |
|
[
TaskPoolInfo
](
#taskpoolinfo10
)
| 任务池的内部信息。 |
**示例:**
```
ts
let
taskpoolInfo
:
TaskPoolInfo
=
taskpool
.
getTaskPoolInfo
();
```
## 其他说明
### 序列化支持类型
...
...
@@ -833,3 +913,64 @@ async function taskpoolGroupCancelTest() {
taskpoolGroupCancelTest
()
```
**示例八**
```
ts
// 分别创建执行100个高、中、低优先级的任务,查看其各项信息
@
Concurrent
function
delay
()
{
let
start
=
new
Date
().
getTime
();
while
(
new
Date
().
getTime
()
-
start
<
500
)
{
continue
;
}
}
let
highCount
=
0
;
let
mediumCount
=
0
;
let
lowCount
=
0
;
let
allCount
=
100
;
for
(
let
i
=
0
;
i
<
allCount
;
i
++
)
{
let
task1
=
new
taskpool
.
Task
(
delay
);
let
task2
=
new
taskpool
.
Task
(
delay
);
let
task3
=
new
taskpool
.
Task
(
delay
);
taskpool
.
execute
(
task1
,
taskpool
.
Priority
.
LOW
).
then
(()
=>
{
lowCount
++
;
}).
catch
((
e
)
=>
{
console
.
error
(
"
low task error:
"
+
e
);
})
taskpool
.
execute
(
task2
,
taskpool
.
Priority
.
MEDIUM
).
then
(()
=>
{
mediumCount
++
;
}).
catch
((
e
)
=>
{
console
.
error
(
"
medium task error:
"
+
e
);
})
taskpool
.
execute
(
task3
,
taskpool
.
Priority
.
HIGH
).
then
(()
=>
{
highCount
++
;
}).
catch
((
e
)
=>
{
console
.
error
(
"
high task error:
"
+
e
);
})
}
let
start
=
new
Date
().
getTime
();
while
(
new
Date
().
getTime
()
-
start
<
1000
)
{
continue
;
}
let
taskpoolInfo
=
taskpool
.
getTaskPoolInfo
();
let
tid
=
0
;
let
taskIds
=
[];
let
priority
=
0
;
let
taskId
=
0
;
let
state
=
0
;
let
duration
=
0
;
for
(
let
threadInfo
of
taskpoolInfo
.
threadInfos
)
{
tid
=
threadInfo
.
tid
;
taskIds
.
length
=
threadInfo
.
taskIds
.
length
;
priority
=
threadInfo
.
priority
;
console
.
info
(
"
taskpool---tid is:
"
+
tid
+
"
, taskIds is:
"
+
taskIds
+
"
, priority is:
"
+
priority
);
}
for
(
let
taskInfo
of
taskpoolInfo
.
taskInfos
)
{
taskId
=
taskInfo
.
taskId
;
state
=
taskInfo
.
state
;
duration
=
taskInfo
.
duration
;
console
.
info
(
"
taskpool---taskId is:
"
+
taskId
+
"
, state is:
"
+
state
+
"
, duration is:
"
+
duration
);
}
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录