I want to use a BackgroundWorker or a Thread to call a method from my windows form on a class located in my business layer. I would like the method in this business layer to be able to report its progress if anyone is listening as it may take awhile to complete. Since I may start with a BackgroundWorker and later decide to use a regular thread, I don't want to get tied to either.
What would be the best way for a method to report its progress if its unaware of the if it was called by a backgroundworker? I was thinking of providing an event on my Business Layer Class that could publish its progress should anyone be listening.
Is there a delegate in the Framework already for that? Better Yet an Interface that I could Implement - something like INotifyProgressChanged?