课程提供进度信息的方式有哪些

Dar*_*ara 4 c#

我有多个类在线程中执行冗长的任务,并希望它们输出某种进度,所以我可以将它显示到进度条或计数器.

我可以使用在接口中定义的事件或委托,但似乎每个实现我都需要编写完全相同的FireEvent代码来检查事件是否为null并提升它,如果不是的话.

使用抽象类似乎也很糟糕,因为这样的功能不属于最顶级的类,这意味着我必须再次在不同的地方实现它.

如何以最可重用的方式执行此操作,无需重复代码?

MGZ*_*ero 6

如果您使用a BackgroundWorker作为其他线程,则可以使用该ReportProgress方法,这将引发ProgressChanged事件.

http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx