0

所以它就是这样。我希望做一些测试下载管理器(的WinForms),并希望使用4点不同的方式(经理):
1. BackgroundWorker的经理 2.线程经理 3.线程池经理 4. Delegate.BeginInvoke经理
从下载FTP。当然,对于多下载来说,它是异步的,当我想添加新的下载时,以前的下载可能仍然有效。所以,我的问题是架构。我想像这样的不道德行为:
1)创建接口IDownloadManager。这里 - 枚举状态(空闲,下载,下载,取消,errorDownloaded),一些事件(DownloadStarted,DownloadComleted,DownloadCancelled,DownloadStopped),方法为百分比,开始的方法。
2)ManagerFactory类,创建选定的管理器。
3)IManagerFactory界面,处理与创建管理器
4)ManagerHost类,其中存储当前管理器的所有信息。C#下载管理器(线程,线程池,BeginInvoke,BackgroundWorker)

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

回答

0

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

0

请记住,支持所有'4种不同方式'的取消或进度将以BackgroundWorker的实现结束。背景工作者结合了用于UI目的的线程池和同步控件的使用。