Enhance ProgressMonitor, easy to use, support multithread and sub task