private async Task RunAndRescheduleNoThrow() { try { var logger = new SynchronizationLogger(_profileId, _profileName); using (AutomaticStopwatch.StartInfo(s_logger, string.Format("Running synchronization profile '{0}'", _profileName))) { await _synchronizer.SynchronizeNoThrow(logger); } GC.Collect(); GC.WaitForPendingFinalizers(); var synchronizationReport = logger.GetReport(); _synchronizationReportRepository.AddReport(synchronizationReport); } catch (Exception x) { ExceptionHandler.Instance.HandleException(x, s_logger); } finally { _lastRun = DateTime.UtcNow; } }