Did you look into `NSProgress` for this purpose?