Files
iOSAI/Utils/ThreadManager.py
2025-08-14 14:46:52 +08:00

33 lines
1.1 KiB
Python

from threading import Thread, Event
from Utils.LogManager import LogManager
from script.ScriptManager import ScriptManager
class ThreadManager():
threads = {}
@classmethod
def add(cls, udid, t: Thread, stopEvent: Event):
if udid in cls.threads:
print("▲ 线程已存在")
return
cls.threads[udid] = {"thread": t, "stopEvent": stopEvent}
@classmethod
def stop(cls, udid):
try:
info = cls.threads[udid]
if info:
info["stopEvent"].set() # 停止线程
info["thread"].join(timeout=3) # 等待线程退出
del cls.threads[udid]
LogManager.info("停止线程成功", udid)
return 200, "停止线程成功 " + udid
else:
LogManager.info("无此线程,无需关闭", udid)
return 1001, "无此线程,无需关闭 " + udid
except KeyError as e:
LogManager.info("无此线程,无需关闭", udid)
return 1001, "停止脚本失败 " + udid