I have multiple classes that do lengthy tasks in threads and want them to output some kind of progress, so i can display it to a progress bar or a counter.
I could use an event or a delegate, defined in an interface, but it seems for every implementation I will need to write the exact same FireEvent code to check if the event is null and raise it, if it’s not.
Using an abstract class seems bad too, since functionality like that does not belong in the top most class, which means I have to implement it at different places again.
How do I do that in the most reusable way, without duplicate code everywhere?
If you’re using a
BackgroundWorkerfor your other threads, you can use theReportProgressmethod, which will raise theProgressChangedevent.http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx