• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { worker } from '@kit.ArkTS';
17import resource from '../util/resource';
18
19const workerInstance: worker.ThreadWorker = new worker.ThreadWorker('entry/ets/workers/Worker.ets');
20
21@Entry
22@Component
23struct Index {
24  @State message: string = 'Listener task';
25
26  build() {
27    Column() {
28      Text(this.message)
29        .id('HelloWorld')
30        .fontSize(50)
31        .fontWeight(FontWeight.Bold)
32        .onClick(() => {
33          workerInstance.postMessage({ type: 'start' });
34          workerInstance.onmessage = (event) => {
35            console.info(resource.resourceToString($r('app.string.Information')), event.data);
36          }
37          // 10秒后停止worker
38          setTimeout(() => {
39            workerInstance.postMessage({ type: 'stop' });
40          }, 10000);
41          this.message = 'success';
42        })
43    }
44    .height('100%')
45    .width('100%')
46  }
47}