视频播放器线程
本文关键字:线程 播放器 视频 | 更新日期: 2023-09-27 18:19:50
我正在开发一个win-forms、连续的24/7视频播放器,我需要一些帮助来决定哪个线程类适合我的需求。这是我第一次尝试多线程。我熟悉BackgroundWorker类、要设置的几个属性和要处理的事件,但我还没有深入研究其他线程类。我认为我的应用程序的任务很简单,但我可能在简单程度上错了。
以下是玩家的一些功能:
读取SQL Server数据库并在DataGridView上显示数据。
从DataGridView CellMouseDoubleClick事件将DataRepeaterItems添加到DataRepeater控件(用于播放列表)。
在辅助(预览)播放器上加载每个CellMouseClick事件的视频声音。
播放器的PLAY按钮在视频播放器实例上加载和播放视频,更新一些标签,在辅助DataRepeater上添加DataRepeaterItem(充当播放列表历史记录的角色),并从播放列表DataRepeator控件中删除当前播放的DataRepeater.Item。
还有几个按钮删除所有DataRepeaterItems并在列表中上下移动Items。稍后将添加类似自动播放列表的功能,根据一些标准用多个项目填充DataRepeater控件。(全天候玩家)
你们为什么这么想?使用BackgroundWorker安全吗?还是查看其他线程类更好?
如果您使用.Net 4
或更高版本,我建议使用任务类而不是Background Worker
任务班无疑是对BackgroundWorker的改进。它具有更大的灵活性。使用Task可以编写比BackgroundWorker更优雅的代码。例如,您可以通过使用任务延续的概念来避免BackgroundWorker中涉及的事件处理程序。
如果.NET 4可用,则一定要使用Task
s。它们有很多有用的功能:
- 当当前工作完成时,为同一
Task
排队处理更多工作的能力 - 将异常封送至调用线程
- "智能"调度
以及更多。请查看此来源,了解您可以做什么。