gpt4 book ai didi

javascript - 取消单个 Webworker 事件

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:42 25 4
gpt4 key购买 nike

是否可以取消对 worker.postMessage(..) 调用的单个操作的处理? ?有 worker.terminate()方法,但它会取消任何等待事件。而且它似乎让整个 worker 都死了,因为它对进一步的 react 没有反应 postMessage电话。

另一方面,创建一个新的Worker似乎没用对于每个任务,如果它们对大量公共(public)数据进行操作,则必须从 Worker 遍历这些数据至 Worker通过主脚本,每次都克隆整个数据。

最佳答案

确实 worker.terminate() 杀死了线程。由于与 WebWorker 相关的内存和 CPU 开销相当大,因此这一事实可能代价高昂。

处理单个事件取消的方法是在 postMessage 回调中托管某种 Controller 逻辑。您的工作人员可以有状态,因此您必须在内部跟踪该状态并使用该信号量停止或启动进程。

一种方法可能是创建一个共享 Worker,它甚至可以跨选项卡使用,然后让该共享 Worker 在必要时处理您的其他线程。

关于javascript - 取消单个 Webworker 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com