C#下载管理器(Thread,ThreadPool,BeginInvoke,BackgroundWorker)

时间:2012-10-11 07:40:02

标签: winforms multithreading backgroundworker threadpool begininvoke

所以在这里。我想制作一些测试下载管理器(winforms),并希望使用4种不同的方式(管理者):
1. BackGroundWorker经理 2.线程管理器 3. ThreadPool管理器 4. Delegate.BeginInvoke经理
 从ftp下载当然,它使多重下载异步,当我想添加新的下载时,以前的下载可能仍然有效。所以,我的问题是架构。我想这个样子就像: 1)创建接口IDownloadManager。这里 - 枚举状态(空闲,下载,下载,取消,错误下载),一些事件(DownloadStarted,DownloadComleted,DownloadCancelled,DownloadStopped),百分比方法,开始方法。
2)ManagerFactory类,用于创建选定的Manager 3)IManagerFactory接口,用于创建Manager的句柄 4)ManagerHost类,其中存储当前管理者的所有信息。

谁能告诉我,我的架构错误在哪里?给我一些建议,建议等等。感谢阅读和帮助!

2 个答案:

答案 0 :(得分:0)

看起来不错。希望您设计的架构能够很好地运作。

答案 1 :(得分:0)

请记住,对所有这4种不同方式的取消或进度的支持将最终实现BackgroundWorker。 backgroundworker结合了线程池和synchronizationcontext的用途,用于UI目的。