Contains a base class AsynchronousOperation which allows you to start long-running operations on a separate thread from the UI whilst providing meaningful progress information to the UI without the UI needing to know anything about the internal implementation of the operation being run.
Features
- End user gets a responsive UI with regular feedback while lengthy operations are being run
- Minimal burden on the business logic developer to allow UIs to be responsive whilst their class is doing its thing
- UI developer doesn't need to know anything about the internal structure of business logic classes
- User gets to cancel an operation if they think it's going to take too long
