28 lines
799 B
Python
28 lines
799 B
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):
|
|
print(cls.threads)
|
|
info = cls.threads[udid]
|
|
if info:
|
|
info["stopEvent"].set() # 停止线程
|
|
info["thread"].join(timeout=3) # 等待线程退出
|
|
del cls.threads[udid]
|
|
LogManager.info("停止线程成功", udid)
|
|
else:
|
|
LogManager.info("无此线程,无需关闭", udid) |