Runs the operation reporting progress to and accepting
cancellation requests from the given progress monitor.
Implementors of this method should check the progress monitor
for cancellation when it is safe and appropriate to do so. The cancellation
request should be propagated to the caller by throwing
monitor - a progress monitor, or null if progress
reporting and cancellation are not desired