为类

时间:2017-01-17 09:55:30

标签: c# winforms .net-4.0

我不确定标题是否有意义,所以我会尝试描述我想做的事情:

假设我有一个用于控制某些硬件设备的类。该类包含一种用于对设备执行某些过程的方法,该方法涉及软件和硬件操作并且花费很长时间。我想在我的表单中访问此方法。但是我想保留取消程序,启用或禁用部分程序或只更改其中的一些变量的可能性。

如果整个过程是我的主要形式,那么我可以简单地添加一些可以随时更改的全局标志,操作将取决于它们的值。但是,如何将此功能集成到一个单独的类中呢?

1 个答案:

答案 0 :(得分:1)

我会考虑使用表单中的BackgroundWorker类在单独的线程中运行例程,并使您能够“取消”工作线程。关于在类中运行的进程的哪些部分,您可以在构造函数上公开标志,并且可以在实例化类时将它们设置为在工作类下运行。

启用和禁用的更优雅的解决方案是将处理的每个部分封装到单独的类中并公开接口,例如暴露特定实现的“IExecute”。然后,您可以拥有一个控件类,该类公开每个要处理的对象的列表,并根据每次运行的配置添加到此列表中。