当前位置: 首页 > news >正文

python 任务管理器

目录

python 任务管理器

带回调函数的任务管理器:


python 任务管理器

class PlaybackManager:def __init__(self):self.states = {'pic': 0,      # 图片播放状态'music': 0,    # 音乐播放状态'video': 0,    # 视频播放状态'ppt': 0,      # PPT播放状态'pdf': 0,      # PDF播放状态'word': 0      # Word播放状态}self.current_playing = None  # 当前正在播放的类型def start_play(self, play_type):"""开始播放指定类型,停止其他所有播放"""# 先停止所有播放self.stop_all()# 开始新的播放self.states[play_type] = 1self.current_playing = play_typeprint(f"开始播放: {play_type}")def stop_play(self, play_type):"""停止指定类型的播放"""if self.states[play_type] == 1:self.states[play_type] = 0if self.current_playing == play_type:self.current_playing = Noneprint(f"停止播放: {play_type}")def stop_all(self):"""停止所有播放"""for play_type in self.states:if self.states[play_type] == 1:self.states[play_type] = 0print(f"停止播放: {play_type}")self.current_playing = Nonedef get_state(self, play_type):"""获取指定播放类型的状态"""return self.states[play_type]def is_playing(self, play_type):"""检查指定类型是否正在播放"""return self.states[play_type] == 1def get_current_playing(self):"""获取当前正在播放的类型"""return self.current_playing# 使用示例
manager = PlaybackManager()# 开始播放图片,自动停止其他
manager.start_play('pic')        # 输出: 开始播放: pic# 开始播放音乐,自动停止图片
manager.start_play('music')      # 输出: 停止播放: pic, 开始播放: music# 手动停止音乐
manager.stop_play('music')       # 输出: 停止播放: music# 检查状态
print(manager.is_playing('video'))  # 输出: False

带回调函数的任务管理器:

class EnhancedPlaybackManager:def __init__(self):self.states = {'pic': {'playing': 0, 'stop_callback': None},'music': {'playing': 0, 'stop_callback': None},'video': {'playing': 0, 'stop_callback': None},'ppt': {'playing': 0, 'stop_callback': None},'pdf': {'playing': 0, 'stop_callback': None},'word': {'playing': 0, 'stop_callback': None}}self.current_playing = Nonedef register_callback(self, play_type, stop_callback):"""注册停止回调函数"""self.states[play_type]['stop_callback'] = stop_callbackdef start_play(self, play_type, start_callback=None):"""开始播放,带有回调函数支持"""# 停止当前正在播放的if self.current_playing and self.current_playing != play_type:self._stop_play_type(self.current_playing)# 执行开始回调(如果有)if start_callback:start_callback()# 更新状态self.states[play_type]['playing'] = 1self.current_playing = play_typeprint(f"开始播放: {play_type}")def _stop_play_type(self, play_type):"""内部方法:停止指定类型的播放"""if self.states[play_type]['playing'] == 1:self.states[play_type]['playing'] = 0# 执行停止回调(如果有)callback = self.states[play_type]['stop_callback']if callback:callback()print(f"停止播放: {play_type}")def stop_all(self):"""停止所有播放"""for play_type in self.states:self._stop_play_type(play_type)self.current_playing = None# 其他方法同方案一...# 使用示例
def stop_music():print("执行音乐播放器的停止操作")def stop_video():print("执行视频播放器的停止操作")manager = EnhancedPlaybackManager()
manager.register_callback('music', stop_music)
manager.register_callback('video', stop_video)manager.start_play('music')  # 开始播放音乐
manager.start_play('video')  # 输出: 执行音乐播放器的停止操作, 开始播放: video


文章转载自:

http://Dcg60NA8.yybqf.cn
http://cnATBYHF.yybqf.cn
http://hX0R547b.yybqf.cn
http://MdNRxDMp.yybqf.cn
http://dZBjDOqi.yybqf.cn
http://J86Tyr2d.yybqf.cn
http://kga7BTO8.yybqf.cn
http://s5n831Uv.yybqf.cn
http://FgpLxv7z.yybqf.cn
http://O0vEgfEs.yybqf.cn
http://GGJDQvT6.yybqf.cn
http://nKobae8j.yybqf.cn
http://S5C9e18c.yybqf.cn
http://9f1urPKm.yybqf.cn
http://32mZIqYw.yybqf.cn
http://k9I0kKpD.yybqf.cn
http://NjzWg71S.yybqf.cn
http://ORsvBu5s.yybqf.cn
http://dhYzZ7xm.yybqf.cn
http://N6q866Ud.yybqf.cn
http://jBCxIXdR.yybqf.cn
http://1ae3xhkg.yybqf.cn
http://XF5lH4Fz.yybqf.cn
http://AGF3oj0B.yybqf.cn
http://wmy5ef57.yybqf.cn
http://e7SquaVx.yybqf.cn
http://5zErTfte.yybqf.cn
http://SftO1x3V.yybqf.cn
http://AHcPpeu8.yybqf.cn
http://6eUxIZaI.yybqf.cn
http://www.dtcms.com/a/387784.html

相关文章:

  • AI 驱动智能驾驶:L4 级技术落地瓶颈、车企博弈与用户信任构建
  • VS Code和Cursor扩展主机在过去5分钟内意外终止了3次问题解决方案
  • 【TestCenter】创建DHCP Server和DHCP Client
  • 内存泄漏系列专题分析之三十五:开机内存性能优化之一:Camx进程启动提前加载so库
  • 知微传感Dkam系列3D相机SDK例程篇:CSharp设置相机工作模式
  • 《华为基本法》 —— 企业发展的导航仪
  • devops平台建设-总体设计文档
  • 大数据七大业务架构横向比对分析
  • C#面试题及详细答案120道(21-30)-- 集合与泛型
  • 如何对AI代理的决策进行审计和监督?
  • .NET驾驭Word之力:玩转文本与格式
  • NLP中Subword算法:WordPiece、BPE、BBPE、SentencePiece详解以及代码实现
  • 解决Dify部署痛点:Docker镜像源优化配置指南
  • 达梦数据库模式
  • Pytorch笔记
  • SQL 数值函数速查:ROUND、CEIL、FLOOR、MOD 怎么用?
  • GPT-5-Codex 正式发布:迈向真正的“自主编程”时代
  • 直播美颜灯MCU控制方案开发设计分享
  • 数据结构(C语言篇):(十六)插入排序
  • 点亮第一个LED灯
  • Python环境》开发环境搭建
  • 【猛犸AI科技】无人机UAV边缘计算MEC实验
  • 【Datawhale25年9月组队学习:llm-preview+Task1:大模型介绍与环境配置】
  • 【MySQL】体系结构
  • Gated Attention 论文阅读
  • Git 命令行教程:配置 SSH 密钥高效克隆与管理项目
  • 机器学习和数据科学的开源 Python 库-Streamlit
  • Roo Code 的Enhance Prompt「增强提示」功能详解
  • 检测IP是否正常的方法
  • JMeter线程组