public InProgressTask(Func <IProgress <RescanProgress>, Task> getTask, Action updateProgress) { this.Progress = new RescanProgress(0, 0, 0, false); this.Task = getTask(OnProgress.Do <RescanProgress>(progress => { this.Progress = progress; updateProgress(); })); }