You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
917 B
41 lines
917 B
2 years ago
|
import { WorkerMainThreadController } from "./controller/worker.main_thread.controller";
|
||
|
import { IWorkerOptions } from "./worker.core";
|
||
|
|
||
|
/**
|
||
|
* 主线程Worker
|
||
|
*/
|
||
|
export abstract class MainThreadWorker {
|
||
|
/**
|
||
|
* Worker 名称
|
||
|
*/
|
||
|
public name: string;
|
||
|
|
||
|
/**
|
||
|
* 主线程通信控制器
|
||
|
*/
|
||
|
public controller: WorkerMainThreadController;
|
||
|
|
||
|
/**
|
||
|
* 是否已经终止掉 Worker
|
||
|
*/
|
||
|
protected isTerminated = false;
|
||
|
|
||
|
public constructor(options: IWorkerOptions) {
|
||
|
this.name = options.workerName;
|
||
|
this.controller = new WorkerMainThreadController(options);
|
||
|
this.initActions();
|
||
|
}
|
||
|
|
||
|
protected abstract initActions(): void;
|
||
|
|
||
|
/**
|
||
|
* 销毁 worker 实例
|
||
|
* 子实例需要销毁action
|
||
|
*/
|
||
|
public terminate(): void {
|
||
|
this.controller.terminate();
|
||
|
// 设置终止标志位
|
||
|
this.isTerminated = true;
|
||
|
}
|
||
|
}
|