我编写了一个小型WinForms工具,其中包含一些文本框,单选按钮,复选框和一个启动按钮。所以你输入你的输入,点击开始就可以了。
现在我想实现让用户通过允许传递命令行参数来进行一些批处理。
过去我会这样做:
这很有效,但我想知道更优雅的方法。 你会如何解决这个问题?
编辑: 我想总是显示表单,因为它有一个带有进度条的Backgroundworker。
答案 0 :(得分:1)
听起来你的函数直接从表单中读取处理。让该函数接受所有数据作为参数,然后在提交表单时,将数据收集起来然后传递给函数,这是非常清晰的。
以这种方式工作将使您能够从程序的任何部分调用该函数,例如在解析传递给程序的参数时。
不需要定时器,也不需要涉及批量的UI。正如Treb所提到的,对于批处理,您可以选择永远不会显示表单(甚至根本不显示UI)
答案 1 :(得分:1)
如果使用UI模式(如MVP和MVC),则可以将批处理逻辑外部化为基于非UI的类。如果您将控制台想象为另一种UI类型,那么您可以在现有业务逻辑的基础上构建它。
答案 2 :(得分:0)
为什么您的用户界面与您的业务混在一起?您应该有一个业务部分和一个UI部分。 UI和CLI应该只是作为业务的接口。
这是最干净的方法。
关于您的进度条,只需考虑一个系统,您可以从您的业务中读取%的值,这表示完成的工作百分比。 不是那么辛苦