从类库方法中获取进度状态

时间:2010-04-26 01:44:57

标签: c# progress-bar

我正在做的这个应用程序使用类库(如果我敢称之为)来完成大部分工作: 其中2个主要方法(DoWork和UndoWork)使用其他类来实现其目标。 既然有效,我想退出Console测试环境并进行GUI。

我如何获得更新进度条的DoWork()方法的状态? 我应该将类库(当前与Console和Windows.Forms一起使用)进行多重更新吗?问题是,我肯定要让类库使用Window.Forms,它会破坏控制台测试应用程序(并且有很多 - 我一直测试,然后一起测试)。

你能否提出一些想法,或者我可以阅读有关想法的地方(写这个程序的全部内容是为了学习,等等)?

哦,顺便说一下,像“远见”或“计划”这样的建议可能在这里没有帮助......(现在,任何方式!) - 但肯定会在未来的项目中使用!

2 个答案:

答案 0 :(得分:1)

不是将DoWork()黑客攻击以实际绘制状态更新,只需修改它以向初始化DoWork()时(可选)提供的委托提供进度更新。

这样,您可以提供一个代理,只需在您是控制台应用程序时打印状态更新,并且您可以提供一个导致在GUI应用程序中更新进度条的代理。

答案 1 :(得分:0)

您应该使该方法采用实现接口或委托的附加参数来接收进度报告 然后,您应该为控制台应用程序创建一个no-op实现接口,以及为WinForms更新ProgressBar控件的实现。