private void RunGetImagesWorker() { var options = _formSettingsService.GetFormOptions(this); using (_getImagesWorker = new BackgroundWorker()) { _getImagesWorker.WorkerReportsProgress = true; _getImagesWorker.WorkerSupportsCancellation = true; _getImagesWorker.DoWork += (o, args) => { SafeUpdate(() => _progressBarWidget.Reset(0, "Progress of image scan")); _controller.SetCancelFlag(false); _controller.ClearDatabase(); var imagePaths = _controller.GetImageList(options.ImagesSoureDirectory); _controller.AnalyseImages(imagePaths, options); }; _getImagesWorker.RunWorkerCompleted += (o, args) => { Messaging.Talk("Completed Scanning images..."); RunGetSetsWorker(); }; _getImagesWorker.RunWorkerAsync(); } }