【发布时间】:2012-11-22 20:56:07
【问题描述】:
我正在编写一个在库中执行特定操作的类。但是操作很繁琐,我希望能够在该类中找出方法的进度,以便在 WinForms 应用程序中使用它来报告进度。
我打算在我的 WinForms 应用程序的另一个线程上运行我的类,我希望该类与 WinForms 应用程序的关注点分开,并且我不想将它绑定到除它之外的任何特定内容可以。
在库类中实现进度报告机制的最佳方式是什么?
在类中以某种方式有一个进度变量,并在我的 WinForms 应用程序中添加一个事件侦听器是个好主意吗?如果是,我该怎么做?
编辑:我以前使用过BackgroundWorker 类,但我的问题是我不希望我的库类涉及任何多线程操作。所以我不想在库类中调用ReportProgress,我想(也许)在类中有一个包含当前进度的变量,并且我希望UI线程以某种方式“订阅”它。不过,我不知道这是否是一种很好的设计方式。
【问题讨论】:
-
有很多不同的方法可以解决这个问题,但是您现有的代码是什么样的......?如果你能提供你迄今为止尝试过的东西会有所帮助..
-
目前我没有太多代码。我想在编写课程之前先了解如何进行。如果您能指出解决此问题的一些众所周知的方法,我将不胜感激。
标签: c# multithreading progress-bar progress